【问题标题】:Android Studio 4.0 error; Cause: invalid type code: 3AAndroid Studio 4.0 错误;原因:无效类型代码:3A
【发布时间】: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


【解决方案1】:

我设法解决此问题的唯一方法是创建一个全新的 AS 项目并从版本控制中引入我的源代码。

我的理论是我的项目文件中包含一些来自以前版本的 Android Studio 的杂物,导致了这个问题。如果我有更多的动力,也许我可以准确地找出导致错误的原因,但是一旦我启动并运行了新项目,我就完成了。

【讨论】:

    【解决方案2】:

    我通过下载 gradle 版本 6.1.1 并在连接 android studio 后解决了这个问题。

    然后使用无效缓存/重启

    文件>使缓存无效/重新启动...

    这之后我的问题就解决了

    所以试试这一步...

    【讨论】:

    • 正如我在问题中提到的,我已经尝试过使用 Gradle 6.1.1。
    【解决方案3】:

    gradle-wrapper.properties中的distributionUrl更改为最新版本

    distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip

    【讨论】:

    • 正如我在问题中提到的,我已经尝试过使用 Gradle 6.1.1。
    • 尝试更改项目目录并重新打开。它对我有用。
    猜你喜欢
    • 1970-01-01
    • 2020-09-22
    • 2019-06-10
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多