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

JVM目标版本兼容问题求助:Java与Kotlin编译版本不一致

解决JVM目标版本不兼容问题(compileDebugJavaWithJavac 1.8 vs compileDebugKotlin 17)
  • 补全模块级app/build.gradle的配置,确保Java和Kotlin目标版本统一:

    android {
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_17
            targetCompatibility JavaVersion.VERSION_17
        }
    
        kotlinOptions {
            jvmTarget = "17"
        }
    }
    

    不要仅在allprojects中配置,模块级配置优先级更高,必须单独设置。

  • 编辑项目根目录的gradle.properties,添加全局配置强制覆盖默认值:

    org.gradle.java.home=/你的JDK17实际路径
    kotlin.jvm.target=17
    android.compileOptions.sourceCompatibility=17
    android.compileOptions.targetCompatibility=17
    

    路径需替换为本地JDK17的位置,比如Windows下为C:\Program Files\Java\jdk-17,Mac下为/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home。

  • 清理缓存并重新同步,清除旧配置残留:
    执行命令:

    ./gradlew clean build --refresh-dependencies
    

    或在Android Studio中依次点击File → Sync Project with Gradle Files、Build → Clean Project。

  • 检查Android Studio的JDK配置,避免工具使用错误JDK:

    1. 按Ctrl+Alt+Shift+S打开Project Structure
    2. 进入SDK Location页面,确认JDK Location选择的是JDK17
    3. 前往Settings → Build, Execution, Deployment → Build Tools → Gradle,将Gradle JDK也设置为JDK17
  • 排查第三方依赖冲突:部分旧依赖可能硬绑定JVM1.8,用命令查看依赖树:

    ./gradlew app:dependencies
    

    找到冲突依赖后,要么升级至支持JDK17的版本,要么在app/build.gradle中强制处理:

    configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == '冲突依赖的groupId') {
                details.useVersion '兼容17的版本号'
            }
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:52:13