You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 15:51:07