我知道我的这个问题已被多次询问,我确实按照大部分答案,但没有一个帮助我。所以这是我的问题,每当我同步我的项目时它总是失败。以下是gradle控制台的外观:
执行任务:[:app:generateDebugSources, :app:generateDebugAndroidTestSources,:app:mockableAndroidJar, :应用程序:prepareDebugUnitTestDependencies]
按需配置是一项孵化功能。增量java 编译是一个孵化功能。 :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DATE:app:checkDebugManifest :app:preReleaseBuild UP-TO-DATE :应用:prepareComAndroidSupportAnimatedVectorDrawable2420Library 最新消息:app:prepareComAndroidSupportAppcompatV72420Library 最新消息:app:prepareComAndroidSupportDesign2420Library UP-TO-DATE :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 :应用:prepareComAndroidSupportSupportVectorDrawable2420Library UP-TO-DATE:app:prepareComGoogleAndroidGmsPlayServices940Library 最新消息:app:prepareComGoogleAndroidGmsPlayServicesAds940Library 最新 :应用:prepareComGoogleAndroidGmsPlayServicesAdsLite940Library 最新 :应用:prepareComGoogleAndroidGmsPlayServicesAnalytics940Library 最新 :应用:prepareComGoogleAndroidGmsPlayServicesAnalyticsImpl940Library 最新 :应用:prepareComGoogleAndroidGmsPlayServicesAppindexing940Library 最新 :应用:prepareComGoogleAndroidGmsPlayServicesAppinvite940Library 最新消息:app:prepareComGoogleAndroidGmsPlayServicesAuth940Library 最新 :应用:prepareComGoogleAndroidGmsPlayServicesAuthBase940Library 最新消息:app:prepareComGoogleAndroidGmsPlayServicesBase940Library 最新 :应用:prepareComGoogleAndroidGmsPlayServicesBasement940Library UP-TO-DATE:app:prepareComGoogleAndroidGmsPlayServicesCast940Library 最新 :应用:prepareComGoogleAndroidGmsPlayServicesCastFramework940Library 最新 :应用:prepareComGoogleAndroidGmsPlayServicesClearcut940Library 最新 :应用:prepareComGoogleAndroidGmsPlayServicesContextmanager940Library 最新消息:app:prepareComGoogleAndroidGmsPlayServicesDrive940Library 最新 :应用:prepareComGoogleAndroidGmsPlayServicesFitness940Library 最新消息:app:prepareComGoogleAndroidGmsPlayServicesGames940Library UP-TO-DATE:app:prepareComGoogleAndroidGmsPlayServicesGass940Library 最新消息:app:prepareComGoogleAndroidGmsPlayServicesGcm940Library 最新 :app:prepareComGoogleAndroidGmsPlayServicesIdentity940Library FAILURE: 构建因异常而失败。
出了什么问题: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'
如何解决问题?
答案 0 :(得分:177)
我已从项目中删除了 .gradle 文件夹,并且能够再次重建它。
N.B:进行备份,以防万一。
答案 1 :(得分:28)
突然系统重启时创建此问题,然后gradle文件损坏。并且已损坏的文件被缓存,因此我们需要从您的项目中删除此文件
your_project_path/.gradle/2.14.1/taskArtifacts
它将再次重新生成。
然后重启Android工作室并重新编译项目。
来源:https://code.google.com/p/android/issues/detail?id=220741#c13
这对我有用。
答案 2 :(得分:3)
如果您仍然遇到此问题,即使删除项目路径下的.gradle文件夹,如建议above,在任务管理器上杀死所有正在运行的Java进程并尝试更新您的Android Studio 。
我处于相同的情况,但现在它正常工作。
希望它有所帮助!
答案 3 :(得分: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=path
。其中path
是Android 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)
希望它对某人有帮助!
答案 4 :(得分: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
答案 5 :(得分:0)
将firebase导入我的项目时遇到了类似的问题。首先确保您正确地遵循了教程步骤并将提供的.json文件导入到正确的目录中。
此外,由于firebase v9.0已经在google play服务中实现,因此要使firebase正常工作,请确保Google Play服务在您正在测试的设备上是最新的,< / p>
我也发现这个答案在解决我的问题时很有帮助 https://stackoverflow.com/a/37310513/6728099
答案 6 :(得分:0)
从依赖项中删除下面的行,因为已经编译完整的播放服务依赖项
override func layoutSubviews() {
super.layoutSubviews()
textLabel?.frame = CGRectMake(50, textLabel!.frame.origin.y - 8, textLabel!.frame.width, textLabel!.frame.height)
textLabel?.font = UIFont(name: "GillSans-SemiBold", size: 16)
detailTextLabel?.frame = CGRectMake(50, detailTextLabel!.frame.origin.y - 10, detailTextLabel!.frame.width, detailTextLabel!.frame.height + 10)
detailTextLabel?.lineBreakMode = .ByWordWrapping
detailTextLabel?.numberOfLines = 2
detailTextLabel?.font = UIFont(name: "GillSans-SemiBold", size: 14)
detailTextLabel?.allowsDefaultTighteningForTruncation = true
detailTextLabel?.textColor = UIColor.darkGrayColor()
}
答案 7 :(得分:0)
检查(x,y)
。
我的问题是依赖项中的index_finder
。
答案 8 :(得分:0)
由于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)
答案 9 :(得分:0)
当Java版本为1.9时,我有同样的问题
jenv use java 1.8
所有问题都解决了。
答案 10 :(得分:0)
对我来说,问题是开源项目使用的是旧版本的 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
。你应该没事了
答案 11 :(得分:0)
还要检查 build.gradle 文件中的依赖项
在我自己的情况下,我删除了 Glide 库(实现“com.github.bumptech.glide:glide:4.9.0”)而没有删除相应的注解库 (annotationProcessor "com.github.bumptech.glide:compiler:4.11.0")
删除这两个库后,构建错误得到修复。
答案 12 :(得分:0)
检查 local.properties
文件。查看 *.dir 值是否指向正确的文件夹。
就我而言,ndk.dir
指向其他文件夹。当我解决问题时,问题就消失了。
ndk.dir=E\:\\Android\\local\\Android\\Sdk\\ndk-bundle
sdk.dir=E\:\\Android\\local\\Android\\Sdk
答案 13 :(得分:0)
公认的解决方案有点风险,可能不是大多数人的解决方案。
正确的答案是不幸的是没有一个答案。
您必须查看案例的日志(Help > Show Logs
或 Show Logs in Explorer
,然后在文本编辑器中打开 idea.log
文件)
在那里您将看到整个堆栈跟踪以及发生的实际错误。
从那里开始,清除当前接受的解决方案提到的想法缓存或做其他事情是有意义的(在我的情况下,它是不匹配的 gradle/cmake/ndk 版本,而不删除我的 .gradle 缓存文件夹会有所帮助)