Android Studio 3.3:由于包含Kotlin模块,因此不支持新的Gradle Sync(无效类型代码:68)

Android Studio 3.3:由于包含Kotlin模块,因此不支持新的Gradle Sync(无效类型代码:68),android,android-studio,gradle,kotlin,Android,Android Studio,Gradle,Kotlin,在使用AndroidStudio 3.3及更高版本的JavaKotlin混合版中,我得到一个无效的类型代码:68错误消息。当使用gradle 5.1及以上版本时,我会收到一条附加消息:“由于包含Kotlin模块,因此不支持新的gradle同步” 如何在android studio 3.3中复制: 1) 用java创建一个带有空白活动的新android项目 2) 创建一个kotlin类文件 3) 单击ConfigureKotlin按钮将kotlin插件和库添加到项目中 4) 同步梯度 我的项目在之

在使用AndroidStudio 3.3及更高版本的JavaKotlin混合版中,我得到一个无效的类型代码:68错误消息。当使用gradle 5.1及以上版本时,我会收到一条附加消息:“由于包含Kotlin模块,因此不支持新的gradle同步”

如何在android studio 3.3中复制:

1) 用java创建一个带有空白活动的新android项目

2) 创建一个kotlin类文件

3) 单击ConfigureKotlin按钮将kotlin插件和库添加到项目中

4) 同步梯度

我的项目在之前的Android Studio稳定版(3.2.1)上运行良好

完整堆栈跟踪:

org.gradle.tooling.GradleConnectionException: Could not run build action using Gradle distribution 'https://services.gradle.org/distributions/gradle-5.1.1-all.zip'.
    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:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
    at java.lang.Thread.run(Thread.java:745)
    at org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:46)
    at org.gradle.tooling.internal.consumer.DefaultBuildActionExecuter.run(DefaultBuildActionExecuter.java:65)
    at com.android.tools.idea.gradle.project.sync.ng.SyncExecutor.doFetchModels(SyncExecutor.java:255)
    at com.android.tools.idea.gradle.project.sync.ng.SyncExecutor.executeFullSync(SyncExecutor.java:239)
    at com.android.tools.idea.gradle.project.sync.ng.SyncExecutor.syncProject(SyncExecutor.java:197)
    at com.android.tools.idea.gradle.project.sync.ng.SyncExecutor.lambda$syncProject$1(SyncExecutor.java:134)
    at org.jetbrains.plugins.gradle.service.execution.GradleExecutionHelper.execute(GradleExecutionHelper.java:209)
    at com.android.tools.idea.gradle.project.sync.ng.SyncExecutor.syncProject(SyncExecutor.java:139)
    at com.android.tools.idea.gradle.project.sync.ng.NewGradleSync.sync(NewGradleSync.java:185)
    at com.android.tools.idea.gradle.project.sync.ng.NewGradleSync.access$000(NewGradleSync.java:59)
    at com.android.tools.idea.gradle.project.sync.ng.NewGradleSync$2.run(NewGradleSync.java:151)
    at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:736)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:157)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:580)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:144)
    at com.intellij.openapi.progress.impl.CoreProgressManager$4.run(CoreProgressManager.java:395)
    at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:314)
    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:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.gradle.api.UncheckedIOException: java.io.StreamCorruptedException: invalid type code: 68
    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:205)
    at org.gradle.tooling.internal.provider.ProviderConnection.run(ProviderConnection.java:193)
    at org.gradle.tooling.internal.provider.ProviderConnection.runClientAction(ProviderConnection.java:153)
    at org.gradle.tooling.internal.provider.ProviderConnection.run(ProviderConnection.java:143)
    at org.gradle.tooling.internal.provider.DefaultConnection.run(DefaultConnection.java:222)
    at org.gradle.tooling.internal.consumer.connection.ParametrizedActionRunner.execute(ParametrizedActionRunner.java:36)
    at org.gradle.tooling.internal.consumer.connection.CancellableActionRunner.run(CancellableActionRunner.java:51)
    at org.gradle.tooling.internal.consumer.connection.AbstractConsumerConnection.run(AbstractConsumerConnection.java:63)
    at org.gradle.tooling.internal.consumer.connection.ParameterValidatingConsumerConnection.run(ParameterValidatingConsumerConnection.java:54)
    at org.gradle.tooling.internal.consumer.DefaultBuildActionExecuter$1.run(DefaultBuildActionExecuter.java:76)
    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)
    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:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
    ... 1 more
Caused by: java.io.StreamCorruptedException: invalid type code: 68
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1563)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2231)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2155)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2013)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
    at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1919)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1529)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2231)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2155)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2013)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2231)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2155)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2013)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2231)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2155)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2013)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:422)
    at org.gradle.tooling.internal.provider.serialization.PayloadSerializer.deserialize(PayloadSerializer.java:74)
    ... 21 more

更改首选项>实验>仅同步活动变体(取消选中此选项)

或者,要在项目文件中手动编辑相应的设置:请尝试在.idea/workspace.xml中将not.qualified.for.single.variant.sync设置为true

您可以如下图所示直接编辑XML,也可以使用IntelliJ的设置UI:

  <component name="PropertiesComponent">
    <property name="not.eligible.for.single.variant.sync" value="true" />
  </component>

这是因为Kotlin中不支持单变量同步

注意:此优化完全支持包含Java和 C++语言,对Kotlin有一定的支持。启用 针对具有Kotlin内容的项目进行优化,Gradle sync会后退 在内部使用完整的变体


至于为什么Gradle无法自动返回到完全变体同步,或者为什么Android Studio没有自动为您设置此标志,我不知道。

我做了两次完全相同的步骤。它起作用了。第一次梯度同步确实会发出警告,但仅此而已。它编译和运行良好。Kotlin 1.3.11,Gradle 4.10.1。。您的问题是*StreamCorruptedException*@shkschneider,但什么是损坏的?当我在android studio 3.2.1上使用相同的下载gradle包装器(4.10.1)时,它是有效的。是什么让你使用gradle 5.1?默认情况下,当我创建新项目时,它会设置Gradle 4.10.1。@shkschneider我已经尝试了所有可能的Gradle版本。没有一个适用于AS 3.3。例如,我的意思是Gradle4.10.1适用于AS 3.2.1,但不适用于AS 3.3。我提到gradle 5.1是因为它提供了额外的错误消息。gradle 5.1似乎确实适用于AS 3.3中的纯java项目或纯kotlin项目。在创建第一个项目后,我在Android Studio 3.4中遇到了相同的错误,但当我完成谷歌搜索时,发现了这个问题,查看了其他几个网站的修复程序,并回顾我的项目,它已经修复了自己。。。此时可能只需要完成下载更新。仅供参考。在我的例子中,默认情况下此属性为true,并出现问题如果您有一个工作项目要引用,我建议您备份损坏的项目,然后用工作项目替换部分内容,直到问题出现。我就是这么做的。将其缩小到.idea目录,然后是特定文件,然后是特定属性。