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

Android Studio Kotlin:compileJava与compileKotlin JVM目标兼容性不一致问题

错误含义解析

这个报错的核心是**buildSrc模块中Java与Kotlin编译任务的目标JVM版本不匹配**:

  • compileJava任务配置的目标JVM版本为21
  • compileKotlin任务配置的目标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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 11:27:20