java.lang.NullPointerException(无错误消息)


81

我知道这个问题已经被问过很多次了,我的确回答了大多数问题,但是没有一个对我有帮助。所以这是我的问题,每当我同步项目时,它总是失败。以下是gradle控制台的外观:

执行任务:[:app:generateDebugSources,:app:generateDebugAndroidTestSources,:app:mockableAndroidJar,:app:prepareDebugUnitTestDependencies]

按需配置是一个孵化功能。增量Java编译是一个令人振奋的功能。:app:preBuild UP-TO-DATE:app:preDebugBuild UP-TO-DATE:app:checkDebugManifest:app:preReleaseBuildUP-TO-DATE:app:prepareComAndroidSupportAnimatedVectorDrawable2420Library UP-TO-DATE:app:prepareComAndroidSupportAppcompatV72420DATE:UP: app:prepareComAndroidSupportDesign2420Library UP-TO-DATE:app:prepareComAndroidSupportMediarouterV72300Library UP-TO-DATE:app:prepareComAndroidSupportRecyclerviewV72420Library UP-TO-DATE:app:prepareComAndroidSupportSupportAppat2420Library UPTO-pre-Com-UATEDate:App:prepareCom-Android:截止日期:app:prepareComAndroidSupportSupportFragment2420Library截止日期:app:

  • 出了什么问题:java.lang.NullPointerException(无错误消息)

  • 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行,以获取更多日志输出。

建立失败

总时间:7.518秒

这些是我的依赖

dependencies {
   compile fileTree(dir: 'libs', include: ['*.jar'])

    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.2.0'
    compile 'com.android.support:design:24.2.0'
    compile 'com.google.android.gms:play-services:9.4.0'
    testCompile 'junit:junit:4.12'
    compile 'com.google.android.gms:play-services-location:9.4.0'
    compile 'com.google.android.gms:play-services-appindexing:9.4.0'
    compile 'com.google.firebase:firebase-messaging:9.2.0'
    compile 'com.google.firebase:firebase-database:9.0.2'
    compile 'com.firebase:firebase-client-android:2.4.0'
    compile 'com.google.firebase:firebase-core:9.4.0'
}

apply plugin: 'com.google.gms.google-services'

该如何解决呢?


3
我刚才有同样的问题。生成->清理项目,然后重新运行对我有用。
w3bshark '16

有时Android Studio无法识别类似的错误。1.error sintaxis,2.resources找不到,3.codes ..和其他更改..我的案子没有更改..
marlonpya

@marlonpya在这里看看,问题很可能与gradle.properties有关。
chornge

每次更新Android Studio时,都会发生类似这种奇怪的事情。w3bshark的干净版本对我有用。
Dale

Answers:


189

我已经从项目中删除了.gradle文件夹,并能够重新构建它。

注意:进行备份,以防万一。


您是指哪个gradle文件?
sweetzyl pili

6
在项目的根文件夹中,有“ .gradle”文件夹。删除它并重新启动Android Studio,它将在构建过程中重新创建。
rastik

你们面对过类似的事情吗?(stackoverflow.com/questions/39749380/…)。这对我当然不起作用:/ @rastik
Siddhant Rimal

我在项目文件夹下找不到任何.gradle文件夹,只有gradle文件夹但没有.gradle,我正在使用MAC,any1解决了此问题?
aznelite89

5
删除.gradle不起作用任何其他解决方案?我在app-tmp文件夹中看到这个compileDebugJavaWithJavac文件夹,并且它有一个名为emptySourcePathRef的空文件夹...清洗项目删除了此文件夹,所以我认为是这个文件夹,但仍然出现错误
Aalap Patel

28

当突然的系统重新启动,然后gradle文件损坏时,创建此问题。并缓存了损坏的文件,因此我们需要从您的项目中删除此文件

your_project_path/.gradle/2.14.1/taskArtifacts

它将再次重新生成。

然后重新启动Android Studio并重新编译项目。

来源:https : //code.google.com/p/android/issues/detail?id=220741#c13

它为我工作。


请注意,请确保关闭所有项目窗口以重启Android Studio,而不仅仅是项目窗口。
水果

它对我有用(带有ionic(Ionic CLI)的pb:3.19.0)任务':compileArmv7DebugJavaWithJavac'的执行失败。> java.lang.NullPointerException(无错误消息)
m50

3

如果您仍然有这个问题,即使你的项目的路径下删除.gradle文件夹后,如提出上述杀死所有的Java进程运行在任务管理器,并尝试更新Android工作室

我当时处在相同的情况,但现在工作正常。

希望能帮助到你!


2

当Java版本为1.9时,我有同样的问题

jenv use java 1.8 

所有问题都解决了。


1

问题很可能是gradle.properties文件。如果./gradlew tasks在终端中键入,则会看到您提到的错误,但会./gradlew tasks --info显示有关该错误的更多详细信息。对我来说,在我所有的项目中,都是相同的错误消息:

Java home is different.
Wanted: DefaultDaemonContext[uid=null,javaHome=/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home,daemonRegistryDir=/Users/christian/.gradle/daemon,pid=66346,idleTimeout=null,daemonOpts=-XX:MaxPermSize=512m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1536m,-Dfile.encoding=UTF-8,-Duser.country=US,-Duser.language=en,-Duser.variant]
Actual: DefaultDaemonContext[uid=4bf81505-0eab-4f50-859a-8c9c616b97e5,javaHome=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home,daemonRegistryDir=/Users/christian/.gradle/daemon,pid=65018,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=512m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1536m,-Dfile.encoding=UTF-8,-Duser.country=US,-Duser.language=en,-Duser.variant]

解决方案:(无需编辑.bash_profile或降级gradle或删除gradle.folder)。

  • 添加org.gradle.java.home=pathgradle.properties。pathAndroid Studio Java路径在哪里(--info日志中注明的实际Java主页)。对我而言,/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home对您而言,道路可能会有所不同。

这是更改后我的gradle.properties文件的样子:

org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
org.gradle.daemon=true 

注意:路径中“ Android Studio ”之间的空格是故意的,如果使用下划线,则该空格将无效。\允许转义字符,但不是必需的:...Android\ Studio.app/Contents/jre....

我还启用了守护程序生成运行器,但gradlew不需要运行它的任务。如果您的空指针错误不同,请使用--info指向正确的方向。

我在跑:

Android Studio 3.1.4 (on a Mac 10.13)
java version "10"
classpath 'com.android.tools.build:gradle:3.1.4' (dependency)

希望它能对某人有所帮助!


当我运行runnign命令./gradlew任务时,我没有遇到任何问题,但是在构建时却遇到了问题。
阿努伊

0
compile 'com.google.android.gms:play-services-location:9.4.0'
compile 'com.google.android.gms:play-services-appindexing:9.4.0'
compile 'com.google.firebase:firebase-messaging:9.2.0'
compile 'com.google.firebase:firebase-database:9.0.2'

不确定这是罪魁祸首,但是您在这里对使用的版本感到非常困惑。尝试对所有相关组件使用最新版本或至少使用相同版本。

该工具可能会帮助您将来保持同步:https : //github.com/ben-manes/gradle-versions-plugin


0

将Firebase导入项目时,我遇到了类似的问题。首先,请确保您正确地遵循了教程中的步骤,并将提供的.json文件导入到正确的目录中。

另外,由于firebase v9.0已在Google Play服务中实现,因此要使Firebase正常运行,请确保您要测试的设备上的Google Play服务是最新的,

我也发现此答案对解决我的问题很有帮助 https://stackoverflow.com/a/37310513/6728099


实际上,即使在我导入Firebase之前,它仍然存在相同的错误。我刚刚添加了Firebase,以便继续进行我的项目。实际上,我创建了一个虚拟应用程序来检查我是否正确遵循了本教程。我还更新了我的AS和SDK,但无法解决问题。
sweetzyl pili

0

从依赖项中删除以下几行,因为已经编译了完整的play services依赖项

    compile 'com.google.android.gms:play-services-location:9.4.0'
    compile 'com.google.android.gms:play-services-appindexing:9.4.0'

1
重建您的项目
Yogesh Rathi,2016年

使用firebase并播放服务9.0,我正在使用,然后工作正常,因此您可以再次检查9.0版本
Yogesh Rathi,2016年

我做了很多次重建。没有解决问题,而是得到了更多的NullPointerException:null。
sweetzyl pili

您是否集成了multidex支持库
Yogesh Rathi,

是的,我是这样做的。defaultConfig {... multiDexEnabled true} buildTypes {release {minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'}}这是正确的吗?而且我已经检查了9.0版本的播放服务,firebase仍然出现相同的错误。
sweetzyl pili


0

由于jdk版本,我得到了NPE,从11降级到8解决了此问题

删除JDK 11

sudo rm -rf /库/Java/JavaVirtualMachines/jdk-11.0.2.jdk

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:kaptDebugKotlin'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)

Caused by: java.lang.NullPointerException
    at org.gradle.workers.internal.DefaultWorkerExecutor$2.transform(DefaultWorkerExecutor.java:164)
    at org.gradle.workers.internal.DefaultWorkerExecutor$2.transform(DefaultWorkerExecutor.java:161)
    at org.gradle.util.CollectionUtils.collect(CollectionUtils.java:204)
    at org.gradle.util.CollectionUtils.collect(CollectionUtils.java:187)
    at org.gradle.util.CollectionUtils.collect(CollectionUtils.java:191)
    at org.gradle.workers.internal.DefaultWorkerExecutor.getDaemonForkOptions(DefaultWorkerExecutor.java:161)
    at org.gradle.workers.internal.DefaultWorkerExecutor.submit(DefaultWorkerExecutor.java:96)
    at org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask.compile(KaptWithoutKotlincTask.kt:75)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

0

对我而言,它可以删除用户目录级别的Gradle缓存: /Users/<username>/.gradle/cache。该--info选项在那里显示不一致。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.