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:
- 按
Ctrl+Alt+Shift+S打开Project Structure - 进入
SDK Location页面,确认JDK Location选择的是JDK17 - 前往
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
相关产品推荐
相关产品推荐

