Android Studio 3.6升级后Gradle同步失败报错求助
我之前升级Android Studio到3.6版本时也碰到过一模一样的问题,这本质是高版本Android Studio的Gradle插件和旧项目里的Gradle、Groovy版本不兼容导致的,下面是亲测有效的解决步骤:
1. 升级Gradle插件与Gradle版本
- 打开项目根目录下的
build.gradle(Project级别的配置文件),修改dependencies里的Gradle插件版本为3.6.x系列(和Android Studio 3.6匹配的稳定版推荐com.android.tools.build:gradle:3.6.4):buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.6.4' } } - 接着打开
gradle/wrapper/gradle-wrapper.properties文件,把distributionUrl换成对应版本的Gradle(插件3.6.4对应Gradle 5.6.4):distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
2. 升级Groovy版本(若项目用到Groovy)
如果你的项目依赖了Groovy,需要把Groovy版本升级到2.5.10及以上,在对应模块的build.gradle里修改:
dependencies { implementation 'org.codehaus.groovy:groovy-all:2.5.14' }
3. 清理IDE缓存并重启
打开Android Studio,依次点击File -> Invalidate Caches...,勾选Clear file system cache and local history,然后点击Invalidate and Restart,等待IDE重启后重新同步项目。
4. 检查本地Gradle完整性
如果你使用的是本地Gradle,确认下载的Gradle压缩包没有损坏:可以删除本地Gradle目录(默认路径为C:\Users\你的用户名\.gradle\wrapper\dists下对应版本的文件夹),让IDE重新下载对应版本的Gradle。
你遇到的报错日志
2020-02-28 14:44:25,568 [ 542460] WARN - e.project.sync.GradleSyncState - Gradle sync failed: Cause: invalid type code: 85 Consult IDE log for more details (Help | Show Log) (1 s 245 ms)
2020-02-28 14:44:25,568 [ 542460] WARN - e.project.sync.GradleSyncState - java.lang.RuntimeException:
at com.android.tools.idea.gradle.project.sync.idea.ProjectSetUpTask.onFailure(ProjectSetUpTask.java:120)
at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$3.executeImpl(ExternalSystemUtil.java:576)
at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$3.lambda$execute$0(ExternalSystemUtil.java:388)
at com.intellij.openapi.project.DumbServiceImpl.suspendIndexingAndRun(DumbServiceImpl.java:149)
at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$3.execute(ExternalSystemUtil.java:388)
at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$5.run(ExternalSystemUtil.java:649)
at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:894)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:169)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:591)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:537)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:156)
at com.intellij.openapi.progress.impl.CoreProgressManager$4.run(CoreProgressManager.java:408)
at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:294)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
内容的提问来源于stack exchange,提问作者Himanshu Pujari

