Gradle插件4.2.2集成Jetpack Compose遇EOFException错误求助
问题
尝试在项目中集成Jetpack Compose,构建运行后出现如下错误:
Task :App:kaptGenerateStubsDuboxDefaultConfigFastDebugKotlin FAILED e: java.io.EOFException at java.base/java.io.ObjectInputStream$BlockDataInputStream.readByte(ObjectInputStream.java:3372) at java.base/java.io.ObjectInputStream$BlockDataInputStream.readUTFChar(ObjectInputStream.java:3773) at java.base/java.io.ObjectInputStream$BlockDataInputStream.readUTFBody(ObjectInputStream.java:3670) at java.base/java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:3470) at java.base/java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1216) at org.jetbrains.kotlin.utils.PluginUtilsKt.decodePluginOptions(pluginUtils.kt:39) at org.jetbrains.kotlin.android.synthetic.AndroidCommandLineProcessor.processOption(AndroidComponentRegistrar.kt:91) at org.jetbrains.kotlin.cli.jvm.plugins.PluginCliParserKt.processCompilerPluginsOptions(PluginCliParser.kt:125) at org.jetbrains.kotlin.cli.jvm.plugins.PluginCliParser.processPluginOptions(PluginCliParser.kt:83) at org.jetbrains.kotlin.cli.jvm.plugins.PluginCliParser.loadPlugins(PluginCliParser.kt:72) at org.jetbrains.kotlin.cli.jvm.plugins.PluginCliParser.loadPluginsSafe(PluginCliParser.kt:44) at org.jetbrains.kotlin.cli.common.CLICompiler.loadPlugins(CLICompiler.kt:179) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:69) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:52) at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:88) at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44) at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:98) at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:386) at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:110) at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally(IncrementalCompilerRunner.kt:303) at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl$rebuild(IncrementalCompilerRunner.kt:99) at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:124) at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:74) at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:607) at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:96) at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1659) 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) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359) at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200) at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196) at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829)
当前模块build.gradle配置:
implementation "androidx.compose.ui:ui:1.0.0" implementation "androidx.compose.material:material:1.0.0" implementation "androidx.compose.ui:ui-tooling:1.0.0" implementation 'androidx.activity:activity-compose:1.3.0' buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion '1.0.0' kotlinCompilerVersion '1.5.10' }
项目环境:Kotlin版本1.6.21,Gradle插件版本4.2.2(因历史问题无法升级至7.0.0),求不升级插件的情况下集成Jetpack Compose的方案。
解决方案
1. 修复版本兼容性冲突
Gradle插件4.2.2仅支持Kotlin 1.5.x系列,你当前使用的Kotlin 1.6.21超出了插件兼容范围,这是触发EOFException的核心原因。需要:
- 将项目Kotlin版本降级至1.5.31(4.2.2支持的最高Kotlin版本)
- 匹配对应的Compose版本:Compose Compiler和UI库均使用1.0.5(与Kotlin 1.5.31兼容的稳定版本)
2. 调整build.gradle配置
模块级build.gradle修改:
// 替换为兼容版本的Compose依赖 implementation "androidx.compose.ui:ui:1.0.5" implementation "androidx.compose.material:material:1.0.5" implementation "androidx.compose.ui:ui-tooling:1.0.5" // activity-compose 1.3.0兼容Compose 1.0.x,无需修改 implementation 'androidx.activity:activity-compose:1.3.0' buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion '1.0.5' // 与Compose版本一致 kotlinCompilerVersion '1.5.31' // 与项目Kotlin版本同步 } // 关闭增量编译避免序列化异常 kotlin.incremental = false
项目根目录build.gradle修改:
buildscript { ext.kotlin_version = "1.5.31" dependencies { classpath "com.android.tools.build:gradle:4.2.2" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
3. 清理构建缓存
执行以下命令彻底清理缓存,避免旧编译文件干扰:
./gradlew clean build --no-build-cache
内容的提问来源于stack exchange,提问作者Reason
相关产品推荐
相关产品推荐

