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

升级至Kotlin 1.4.10时遭遇module-info.class相关编译错误求助

解决Kotlin 1.4.10编译错误:找不到META-INF.versions.9.module-info

我之前升级Kotlin版本时也碰到过一模一样的问题,这个错误本质是Java 9+模块化系统(JPMS)和编译环境的兼容性冲突导致的,下面是几个亲测有效的解决方案:

1. 排除依赖中的模块信息文件

很多第三方库会附带META-INF/versions/9/module-info.class文件,当Kotlin 1.4.x编译器处理这类文件时,如果项目未启用模块化,就会触发找不到模块的错误。你可以在构建脚本中直接排除这些文件:

Android项目(build.gradle/kts)

android {
    packagingOptions {
        exclude 'META-INF/versions/9/module-info.class'
    }
}

纯Kotlin JVM项目(build.gradle/kts)

tasks.withType<JavaCompile> {
    exclude("META-INF/versions/9/module-info.class")
}

2. 调整Kotlin的目标JDK版本

Kotlin 1.4.x对JDK版本的处理逻辑有更新,如果你的项目目标JDK低于9,容易出现这类兼容性问题。可以明确指定Kotlin的目标JVM版本:

kotlin {
    jvmTarget = "1.8" // 也可以根据项目需求改为"11"或更高版本
}

注意:Android项目需要确保compileSdk和targetSdk版本与指定的JVM版本匹配。

3. 清理缓存并重新构建

有时候Gradle的缓存会残留旧版本的编译文件,导致奇怪的错误。执行以下命令清理缓存后重新构建:

# macOS/Linux
./gradlew clean build

# Windows
gradlew.bat clean build

4. 检查Kotlin与Gradle版本的兼容性

Kotlin 1.4.10需要Gradle 6.1及以上版本支持,如果你的Gradle版本过低,可能会出现编译流程中的文件处理异常。可以尝试升级Gradle到兼容版本(比如6.7或更高)。


内容的提问来源于stack exchange,提问作者Hoang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:37:10