【问题标题】:Gradle Build Error - NullPointerException thrown during app:compileDebugJava gradle taskGradle 构建错误 - 在应用程序期间引发 NullPointerException:compileDebugJava gradle 任务
【发布时间】:2014-07-09 17:29:26
【问题描述】:

我每次尝试进行 gradle 构建时都会收到此错误消息。我最近在此之前进行了构建,并且创建的应用程序没有任何问题。我没有对 build.gradle 文件进行任何更改。这是什么原因造成的?

:app:preBuild
 ......
:app:processDebugResources
:app:generateDebugSources
:app:compileDebugJava FAILED
Error:Execution failed for task ':app:compileDebugJava'.
> java.lang.NullPointerException

我使用的是 Android Studio 0.8.1 版

这里是 gradle 堆栈跟踪:

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileDebugJava'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:289)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86)
    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
    at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:166)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
    at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50)
    at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:171)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
    at org.gradle.launcher.Main.doAction(Main.java:46)
    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
    at org.gradle.launcher.Main.main(Main.java:37)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32)
    at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
    at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33)
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130)
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48)
Caused by: java.lang.RuntimeException: java.lang.NullPointerException
    at com.sun.tools.javac.main.Main.compile(Main.java:469)
    at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:132)
    at org.gradle.api.internal.tasks.compile.jdk6.Jdk6JavaCompiler.execute(Jdk6JavaCompiler.java:45)
    at org.gradle.api.internal.tasks.compile.jdk6.Jdk6JavaCompiler.execute(Jdk6JavaCompiler.java:38)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:96)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:49)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:35)
    at org.gradle.api.internal.tasks.compile.DelegatingJavaCompiler.execute(DelegatingJavaCompiler.java:29)
    at org.gradle.api.internal.tasks.compile.DelegatingJavaCompiler.execute(DelegatingJavaCompiler.java:20)
    at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:33)
    at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:24)
    at org.gradle.api.tasks.compile.Compile.performCompilation(Compile.java:165)
    at org.gradle.api.tasks.compile.Compile.compile(Compile.java:153)
    at org.gradle.api.tasks.compile.Compile.compile(Compile.java:87)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:236)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:212)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:223)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:201)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:533)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:516)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
    ... 46 more
Caused by: java.lang.NullPointerException
    at dagger.internal.codegen.Util.getAnnotation(Util.java:192)
    at dagger.internal.codegen.GraphAnalysisProcessor.process(GraphAnalysisProcessor.java:107)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:793)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$200(JavacProcessingEnvironment.java:97)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.runContributingProcs(JavacProcessingEnvironment.java:644)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1027)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1185)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1108)
    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:824)
    at com.sun.tools.javac.main.Main.compile(Main.java:439)
    ... 68 more

这是我的 build.gradle(有点乱):

buildscript {
    repositories {
        mavenCentral()
        maven { url 'http://download.crashlytics.com/maven' }
    }

    dependencies {
        classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.9.+'
        classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
    }
}
apply plugin: 'android-sdk-manager'
apply plugin: 'android'
apply plugin: 'crashlytics'

repositories {
    maven { url 'http://download.crashlytics.com/maven' }
}

android {
    signingConfigs {
        release {
            storeFile file("")
            storePassword ''
            keyAlias ''
            keyPassword ''
        }
        debug {
            storeFile file('/home/andreperkins/.android/debug.keystore')
        }
    }
    //noinspection GroovyAssignabilityCheck
    compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
    //noinspection GroovyAssignabilityCheck
    buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
    defaultConfig {
        applicationId 'com.liveauctioneers.and'
        //noinspection GroovyAssignabilityCheck
        minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
        //noinspection GroovyAssignabilityCheck
        targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
        versionCode 7
        versionName '3.0'
        testInstrumentationRunner 'com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner'
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            //noinspection GroovyAssignabilityCheck
            signingConfig signingConfigs.release
        }
        debug {
            applicationIdSuffix '.debug'
            versionNameSuffix '-DEBUG'
            zipAlign false
        }
        qa {
            debuggable false
            jniDebugBuild false
            renderscriptDebugBuild false
            runProguard false
            applicationIdSuffix '.qa'
            versionNameSuffix '-QA'
            zipAlign true
            //noinspection GroovyAssignabilityCheck
            signingConfig signingConfigs.release
        }
    }
    productFlavors {
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
    packagingOptions {
        exclude 'LICENSE.txt'
        exclude 'META-INF/services/javax.annotation.processing.Processor'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile project(':facebook')
    provided 'com.squareup.dagger:dagger-compiler:1.2.1'
    //mockito dependencies
    androidTestCompile files('libs/dexmaker-mockito-1.0.jar')
    androidTestCompile 'org.mockito:mockito-core:1.9.5'
    androidTestCompile files('libs/dexmaker-1.0.jar')
    //espresso dependencies
    /*androidTestCompile files('libs/espresso-1.1.jar')
    androidTestCompile files('libs/testrunner-1.1.jar')
    androidTestCompile files('libs/testrunner-runtime-1.1.jar')
    */ androidTestCompile 'com.google.guava:guava:16.0'
    /*androidTestCompile 'org.hamcrest:hamcrest-core:1.1'
    androidTestCompile 'org.hamcrest:hamcrest-integration:1.1'
    androidTestCompile 'org.hamcrest:hamcrest-library:1.1'*/
    androidTestCompile 'com.squareup.spoon:spoon-client:1.1.1'

    androidTestCompile('com.jakewharton.espresso:espresso:1.1-r3') {
        exclude group: 'com.squareup.dagger'
    }
    compile 'com.jakewharton:butterknife:4.0.+'
    compile 'com.squareup.dagger:dagger:1.2.1'
    compile 'com.squareup.okhttp:okhttp:1.3.+'
    compile 'com.squareup.retrofit:retrofit:1.5.1'
    compile 'com.google.code.gson:gson:2.2.+'
    compile 'com.crashlytics.android:crashlytics:1.+'
    compile 'com.squareup:otto:1.3.5'
    compile 'javax.annotation:javax.annotation-api:1.2'
    compile 'com.google.code.findbugs:jsr305:1.3.9'
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    compile 'com.android.support:support-v13:19.0.1'
    compile 'com.j256.ormlite:ormlite-android:4.43'
    compile 'com.j256.ormlite:ormlite-core:4.43'
} 

【问题讨论】:

  • @AlonBurg 我修好了。我认为这与 dagger 以及工作室自动为您生成与构建 xml 资源相关的文件有关。由于我不知道原因,因此我暂时保留这个问题。我为解决这个问题所做的是运行“./gradlew build --debug”并看到一些关于我的一个片段的视图注入器(因为我也使用 Butterknife 进行视图注入)我所做的是删除与关联的 xml 文件该片段,然后我删除了每个值文件夹中的所有 ref.xml,因为我不需要它们。尝试类似的方法,让我知道结果如何。

标签: android gradle android-studio ormlite dagger


【解决方案1】:

我认为Support library repository outdated. Downloading update... 与给您带来麻烦的NullPointerException 无关。此消息来自 sdk-manager-plugin,可能与以下 sdk-manager-plugin 的问题有关:https://github.com/JakeWharton/sdk-manager-plugin/issues/31。至于提到的 NPE,它是由dagger 库抛出的。您最近是否对与 dagger 相关的代码进行了任何更改?

【讨论】:

  • 我没有对匕首进行任何我记得的改动。我会尝试删除 android-sdk-manager 看看会发生什么。
  • 这会告诉我们一些事情。在我看来,你仍然会得到同样的例外,但我可能错了。
  • 您对 sdk-manager 插件部分是正确的。我删除了 sdk-manager 插件,现在支持库错误消息消失了。但是,我仍然面临 NullPointerException。我不记得对 Dagger 做过任何改动。我将更新问题以反映这一点。
  • 我现在只是在胡思乱想,但我对 ormlite 注释的使用会不会以某种方式与 Dagger 搞砸?
  • 肯定是和注释有关的东西。我在 dagger 和 ActiveAndroid 上看到过类似的问题。所以你的线索可能会导致答案。不幸的是,匕首不在我的专业领域。
猜你喜欢
  • 1970-01-01
  • 2018-08-11
  • 1970-01-01
  • 2016-10-21
  • 1970-01-01
  • 2016-06-17
  • 1970-01-01
  • 2014-01-04
  • 2015-12-30
相关资源
最近更新 更多