Android Studio Kotlin:compileJava与compileKotlin JVM目标兼容性不一致问题
错误含义解析
这个报错的核心是**buildSrc模块中Java与Kotlin编译任务的目标JVM版本不匹配**:
compileJava任务配置的目标JVM版本为21compileKotlin任务配置的目标JVM版本为1.8
Gradle要求同一模块内的Java和Kotlin编译目标版本必须一致,否则会导致编译生成的字节码在运行时出现兼容性问题,因此直接终止了编译流程。
解决方法
针对buildSrc模块,需要统一Java和Kotlin的目标JVM版本,以下是两种常见DSL的配置方式:
方式1:Kotlin DSL(buildSrc/build.gradle.kts)
plugins { `kotlin-dsl` } java { // 选择与项目匹配的版本,可统一为21或1.8 sourceCompatibility = JavaVersion.VERSION_21 targetCompatibility = JavaVersion.VERSION_21 } tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> { kotlinOptions.jvmTarget = "21" // 与Java配置的版本完全一致 }
方式2:Groovy DSL(buildSrc/build.gradle)
plugins { id 'kotlin-dsl' } java { sourceCompatibility = JavaVersion.VERSION_21 targetCompatibility = JavaVersion.VERSION_21 } tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) { kotlinOptions { jvmTarget = "21" } }
注意事项
- 请根据项目实际使用的JDK版本选择目标版本,确保Java与Kotlin配置完全统一(要么都用21,要么都用1.8)
buildSrc是Gradle的特殊构建脚本模块,配置独立于主项目,必须单独修改该模块下的构建文件- 如果修改后仍报错,可执行命令清理并同步项目:
./gradlew clean build --refresh-dependencies
内容的提问来源于stack exchange,提问作者Tal Yehuda
相关产品推荐
相关产品推荐

