【问题标题】:java.lang.NullPointerException (no error message)java.lang.NullPointerException(没有错误信息)
【发布时间】:2017-01-04 03:39:05
【问题描述】:

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

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

按需配置是一项孵化功能。增量java 编译是一个孵化功能。 :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DATE :app:checkDebugManifest :app:preReleaseBuild UP-TO-DATE :app:prepareComAndroidSupportAnimatedVectorDrawable2420Library 最新:app:prepareComAndroidSupportAppcompatV72420Library 最新:app:prepareComAndroidSupportDesign2420Library 最新 :app:prepareComAndroidSupportMediarouterV72300Library UP-TO-DATE :app:prepareComAndroidSupportRecyclerviewV72420Library UP-TO-DATE :app:prepareComAndroidSupportSupportCompat2420Library UP-TO-DATE :app:prepareComAndroidSupportSupportCoreUi2420Library UP-TO-DATE :app:prepareComAndroidSupportSupportCoreUtils2420Library UP-TO-DATE :app:prepareComAndroidSupportSupportFragment2420Library UP-TO-DATE :app:prepareComAndroidSupportSupportMediaCompat2420Library UP-TO-DATE :app:prepareComAndroidSupportSupportV42420Library UP-TO-DATE :app:prepareComAndroidSupportSupportVectorDrawable2420Library 最新:app:prepareComGoogleAndroidGmsPlayServices940Library 最新:app:prepareComGoogleAndroidGmsPlayServicesAds940Library 最新 :app:prepareComGoogleAndroidGmsPlayServicesAdsLite940Library 最新 :app:prepareComGoogleAndroidGmsPlayServicesAnalytics940Library 最新 :app:prepareComGoogleAndroidGmsPlayServicesAnalyticsImpl940Library 最新 :app:prepareComGoogleAndroidGmsPlayServicesAppindexing940Library 最新 :app:prepareComGoogleAndroidGmsPlayServicesAppinvite940Library 最新:app:prepareComGoogleAndroidGmsPlayServicesAuth940Library 最新 :app:prepareComGoogleAndroidGmsPlayServicesAuthBase940Library 最新:app:prepareComGoogleAndroidGmsPlayServicesBase940Library 最新 :app:prepareComGoogleAndroidGmsPlayServicesBasement940Library 最新:app:prepareComGoogleAndroidGmsPlayServicesCast940Library 最新 :app:prepareComGoogleAndroidGmsPlayServicesCastFramework940Library 最新 :app:prepareComGoogleAndroidGmsPlayServicesClearcut940Library 最新 :app:prepareComGoogleAndroidGmsPlayServicesContextmanager940Library 最新:app:prepareComGoogleAndroidGmsPlayServicesDrive940Library 最新 :app:prepareComGoogleAndroidGmsPlayServicesFitness940Library 最新:app:prepareComGoogleAndroidGmsPlayServicesGames940Library 最新:app:prepareComGoogleAndroidGmsPlayServicesGass940Library 最新:app:prepareComGoogleAndroidGmsPlayServicesGcm940Library 最新 :app:prepareComGoogleAndroidGmsPlayServicesIdentity940Library 失败: 构建失败并出现异常。

  • 出了什么问题: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'

如何解决问题?

【问题讨论】:

  • 我刚才遇到了同样的问题。构建 -> 清理项目,然后重新运行对我有用。
  • 有时 Android Studio 无法识别类似的错误。 1.error sintaxis, 2.resources not found, 3.changes in code.. and others..我的case有没有找到改变..
  • @marlonpya 看看here,问题很可能是 gradle.properties。
  • 每次我更新 Android Studio 时,都会发生这种奇怪的事情。 w3bshark 的干净构建对我有用。
  • 刚刚重启 android studio 解决了我的问题

标签: android gradle build.gradle


【解决方案1】:
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

【讨论】:

    【解决方案2】:

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

    此外,自 firebase v9.0 以来,它已被实施到 google play 服务中,因此要使 firebase 正常工作,请确保您正在测试的设备上的 Google play 服务是最新的,

    我还发现这个答案在解决我的问题时很有帮助 https://stackoverflow.com/a/37310513/6728099

    【讨论】:

    • 实际上,即使在我导入 firebase 之前,它仍然存在相同的错误。我刚刚添加了 firebase,所以我可以继续我的项目。事实上,我创建了一个虚拟应用程序来检查我是否正确遵循了教程。我还更新了我的 AS 和 SDK,但并没有解决问题。
    【解决方案3】:

    从依赖项中删除以下行,因为您已经编译了完整的播放服务依赖项

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

    【讨论】:

    • 重建你的项目
    • 使用 firebase 并播放服务 9.0,我正在使用然后工作正常,所以你能用 9.0 版本再次检查
    • 我重建了很多次。它没有解决问题,而是得到了更多 NullPointerException:null.
    • 你集成multidex支持库了吗
    • 是的,我是这样做的。 defaultConfig { ... multiDexEnabled true } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } 这是正确的吗?而且我已经检查了9.0版本的播放服务和firebase仍然有同样的错误。
    【解决方案4】:

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

    注意:做好备份,以防万一。

    【讨论】:

    • 你指的是哪个 gradle 文件?
    • 在你项目的根目录下,有“.gradle”文件夹。删除它并重新启动 Android Studio,它将在构建过程中重新创建。
    • 你们遇到过类似的事情吗? (stackoverflow.com/questions/39749380/…)。这当然对我不起作用:/ @rastik
    • 我在我的项目文件夹下找不到任何 .gradle 文件夹,只有 gradle 文件夹而不是 .gradle ,我使用的是 MAC,any1 解决这个问题吗?
    • 删除 .gradle 没有其他解决方案?我在 app-tmp 文件夹中看到了这个 compileDebugJavaWithJavac 文件夹,它有一个名为 emptySourcePathRef 的空文件夹...清理项目删除了这个文件夹,所以我认为这是它但仍然出现错误
    【解决方案5】:

    这个问题是在系统突然重启,然后 gradle 文件损坏时产生的。并且缓存了损坏的文件,因此我们需要从您的项目中删除此文件

    your_project_path/.gradle/2.14.1/taskArtifacts
    

    它将再次重新生成。

    然后重启Android studio,重新编译工程。

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

    它对我有用。

    【讨论】:

    • 请注意,确保关闭所有项目窗口以重新启动 Android Studio,而不仅仅是项目窗口。
    • 它适用于我(pb 与离子(离子 CLI):3.19.0)任务“:compileArmv7DebugJavaWithJavac”执行失败。 > java.lang.NullPointerException(没有错误信息)
    【解决方案6】:

    如果您仍然遇到此问题,即使在删除项目路径下的 .gradle 文件夹后,按照建议 above在任务管理器上杀死所有正在运行的 Java 进程并尝试 更新您的 Android Studio

    我也遇到了同样的情况,但是现在可以正常使用了。

    希望对你有帮助!

    【讨论】:

      【解决方案7】:

      检查您的app/build.gradle。 我的问题是依赖项中的'

      【讨论】:

        【解决方案8】:

        问题可能是 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)。

        • 在 gradle.properties 中添加 org.gradle.java.home=path。其中path 是 Android Studio java 路径(--info 日志中说明的实际 java home)。对我来说是/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)
        

        希望对某人有所帮助!

        【讨论】:

        • 当我运行命令 ./gradlew 任务时,我没有遇到任何问题,但在构建时我遇到了问题。
        【解决方案9】:

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

        删除 jdk 11

        sudo rm -rf /Library/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)
        

        【讨论】:

          【解决方案10】:

          java 版本为 1.9 时我也有同样的问题

          jenv use java 1.8 
          

          所有问题都解决了。

          【讨论】:

            【解决方案11】:

            对我来说,删除用户目录级别的 Gradle 缓存很有效: /Users/<username>/.gradle/cache--info 选项在此处显示不一致。

            【讨论】:

              【解决方案12】:

              对我来说,问题在于开源项目使用的是旧版本的 gradle 3.4.0。

              编辑 build.gradle 并将 com.android.tools.build:gradle:x.x.x 更改为依赖项中的最新版本。就我而言,com.android.tools.build:gradle:4.1.2

              再次在 Android Studio 中打开项目,您现在将看到另一条有关最低 Gradle 版本的错误消息,如下面的屏幕截图所示

              点击蓝色文字Fix Gradle wrapper and re-import project。你应该很高兴

              【讨论】:

                【解决方案13】:

                还要检查 build.gradle 文件中的依赖项

                在我自己的情况下,我删除了 Glide 库(实现“com.github.bumptech.glide:glide:4.9.0”),而没有删除相应的注解库 (annotationProcessor "com.github.bumptech.glide:compiler:4.11.0")

                删除这两个库后,构建错误已修复。

                【讨论】:

                  【解决方案14】:

                  检查local.properties 文件。查看 *.dir 值是否指向正确的文件夹。

                  在我的情况下,ndk.dir 指向其他文件夹。当我解决问题时,问题就消失了。

                  ndk.dir=E\:\\Android\\local\\Android\\Sdk\\ndk-bundle
                  sdk.dir=E\:\\Android\\local\\Android\\Sdk
                  

                  【讨论】:

                    【解决方案15】:

                    接受的解决方案有点风险,可能不是大多数人的解决方案。

                    正确的答案是很遗憾没有一个答案。

                    您必须查看您的案例的日志(Help > Show LogsShow Logs in Explorer,然后在文本编辑器中打开 idea.log 文件)

                    在那里,您将看到整个堆栈跟踪以及它发生的实际错误。

                    从那里,按照当前接受的解决方案提到的那样清除想法缓存或做其他事情是有意义的(在我的情况下,它是不匹配的 gradle/cmake/ndk 版本并且不删除我的 .gradle 缓存文件夹会有所帮助)

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 2021-05-29
                      • 1970-01-01
                      • 1970-01-01
                      • 2018-08-02
                      • 1970-01-01
                      • 2017-06-21
                      • 2017-01-06
                      相关资源
                      最近更新 更多