【发布时间】:2020-09-21 05:09:40
【问题描述】:
我刚刚从 3.6 升级到 AS 4.0 版,现在我的一个项目在 Gradle 同步期间失败。该项目将在升级之前毫无问题地构建。我需要帮助找出问题。
来自idea.log 的堆栈跟踪是:
2020-06-02 11:08:35,533 [ 40337] INFO - .project.GradleProjectResolver - Gradle project resolve error
org.gradle.tooling.GradleConnectionException: Could not run phased build action using Gradle installation '/usr/local/Cellar/gradle/5.5.1/libexec'.
at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:55)
at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:29)
at org.gradle.tooling.internal.consumer.ResultHandlerAdapter.onFailure(ResultHandlerAdapter.java:41)
at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:57)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.gradle.api.UncheckedIOException: java.io.StreamCorruptedException: invalid type code: 3A
at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:61)
at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:41)
at org.gradle.tooling.internal.provider.serialization.PayloadSerializer.deserialize(PayloadSerializer.java:76)
at org.gradle.tooling.internal.provider.ProviderConnection.throwFailure(ProviderConnection.java:208)
at org.gradle.tooling.internal.provider.ProviderConnection.run(ProviderConnection.java:196)
at org.gradle.tooling.internal.provider.ProviderConnection.runPhasedAction(ProviderConnection.java:171)
at org.gradle.tooling.internal.provider.DefaultConnection.run(DefaultConnection.java:233)
at org.gradle.tooling.internal.consumer.connection.PhasedActionAwareConsumerConnection.run(PhasedActionAwareConsumerConnection.java:56)
at org.gradle.tooling.internal.consumer.connection.ParameterValidatingConsumerConnection.run(ParameterValidatingConsumerConnection.java:60)
at org.gradle.tooling.internal.consumer.DefaultPhasedBuildActionExecuter$1.run(DefaultPhasedBuildActionExecuter.java:76)
at org.gradle.tooling.internal.consumer.DefaultPhasedBuildActionExecuter$1.run(DefaultPhasedBuildActionExecuter.java:70)
at org.gradle.tooling.internal.consumer.connection.LazyConsumerActionExecutor.run(LazyConsumerActionExecutor.java:84)
at org.gradle.tooling.internal.consumer.connection.CancellableConsumerActionExecutor.run(CancellableConsumerActionExecutor.java:45)
at org.gradle.tooling.internal.consumer.connection.ProgressLoggingConsumerActionExecutor.run(ProgressLoggingConsumerActionExecutor.java:58)
at org.gradle.tooling.internal.consumer.connection.RethrowingErrorsConsumerActionExecutor.run(RethrowingErrorsConsumerActionExecutor.java:38)
at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:55)
... 6 more
Caused by: java.io.StreamCorruptedException: invalid type code: 3A
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1656)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2342)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2266)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2124)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1625)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:2030)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1613)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2342)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2266)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2124)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1625)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2342)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2266)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2124)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1625)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2342)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2266)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2124)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1625)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2342)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2266)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2124)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1625)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2342)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2266)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2124)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1625)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2342)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2266)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2124)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1625)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2342)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2266)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2124)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1625)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:465)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:423)
at org.gradle.tooling.internal.provider.serialization.PayloadSerializer.deserialize(PayloadSerializer.java:74)
... 19 more
2020-06-02 11:08:35,559 [ 40363] INFO - System.util.ExternalSystemUtil - External project [/Users/tedhopp/AndroidStudioProjects/TanachApps] resolution task executed in 23203 ms.
2020-06-02 11:08:35,560 [ 40364] WARN - e.project.sync.GradleSyncState - Gradle sync failed: Cause: invalid type code: 3A
Consult IDE log for more details (Help | Show Log) (23 s 272 ms)
2020-06-02 11:08:35,572 [ 40376] INFO - roid.tools.ndk.GradleWorkspace - Updating model took 0.003s
2020-06-02 11:08:35,889 [ 40693] INFO - ge.ExternalProjectsDataStorage - Save external projects data in 2 ms
2020-06-02 11:13:00,653 [ 305457] WARN - dea.sdk.SystemInfoStatsMonitor - CpuInfoFlags.fromExitCode(): unknown flag values '0x80'
无论我使用的是 4.0.0 版还是 3.6.3 版的 Android Gradle 插件,都会发生这种情况。我还尝试设置各种版本的 Gradle(5.5.1、5.6.4 和 6.1.1)。我已经尝试清理项目并清除缓存并重新启动 AS。没有任何改变行为。
自升级到 AS 4.0 以来,其他项目同步和编译没有问题。我应该提到“仅同步活动变体”选项已禁用(this answer 中针对类似问题提出的解决方案)。
这是问题项目和另一个有效项目的 gradle-wrapper.properties 文件:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
这是两个项目的项目级build.gradle 文件的buildscript 部分:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.0.0'
}
}
在查看堆栈跟踪时,我很困惑为什么它在/usr/local/Cellar/gradle/5.5.1/libexec 使用 Gradle 安装。 AS 没有理由使用那个版本。 (我的环境变量中肯定没有任何内容指向该安装。)
我不知道下一步该尝试什么,也不知道到哪里寻找问题的根源。
【问题讨论】:
-
您是否尝试过清除缓存
-
@DavidEnoma - 是的。我相信我在问题中提到了这一点。
-
我记得这些损坏在从 AS 2.0 升级到 3.0 后经常发生。他们在一段时间后得到了修复,IIRC,除了使缓存无效之外,我不确定我是否做过任何事情。我现在的建议是:删除
~/.gradle/caches中的 gradle 缓存(如果您不介意重新下载所有依赖项),甚至可能是整个.gradle文件夹,然后在 AS 问题跟踪器上打开一个问题。至于gradle安装文件夹看this question。看起来这就是 Homebrew 安装 gradle 的地方? -
今天早些时候又遇到了这个问题;使缓存无效、清理等不起作用,但是运行
./gradlew --stop和./gradlew assembleDebug --no-build-cache似乎让我的事情再次正常运行。可能值得一试。
标签: android android-studio gradle build.gradle