升级Android Gradle Plugin至8.0遇JVM版本不兼容问题求助
AGP 8.0升级后Java与Kotlin JVM版本不兼容问题解决
错误含义
这个错误的核心是Java编译任务和Kotlin编译任务的JVM目标版本不匹配——你的Java代码编译目标仍为1.8,但Kotlin已设为17,AGP 8.0开始严格要求两者版本必须一致,否则会直接阻止构建。
修复步骤
检查配置是否全局生效
如果是多模块项目,仅在单个模块的build.gradle中设置是不够的,需在项目根目录的build.gradle中统一配置所有模块:subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { android { compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" } } } } }同时要确保每个模块的
build.gradle里没有单独覆盖这些配置(比如部分模块可能残留了1.8版本的设置)。排查第三方插件/库的干扰
部分第三方插件(如老版本的注解处理器、代码混淆插件)可能会强制修改Java版本,需要检查这些插件的配置:要么升级插件到支持Java 17的版本,要么手动指定插件使用的JVM版本为17。清理Gradle缓存并重新同步
执行以下操作彻底清理缓存并重建:- 点击Android Studio右上角的
Sync Project with Gradle Files按钮同步项目 - 执行
./gradlew clean(Mac/Linux)或gradlew clean(Windows)命令清理构建产物 - 重启Android Studio后再次同步构建
- 点击Android Studio右上角的
验证配置是否生效
可以通过Gradle命令确认版本是否统一:- 执行
./gradlew compileDebugJavaWithJavac -Porg.gradle.debug=true --no-daemon,在输出中查找-target参数,确认值为17 - 执行
./gradlew compileDebugKotlin -Porg.gradle.debug=true --no-daemon,查看jvm-target参数,确认值为17
- 执行
内容的提问来源于stack exchange,提问作者SmallGrammer
相关产品推荐
相关产品推荐

