Android Gradle配置kapt生成Java17存根的问题与解决
Android构建警告:JVM目标版本不一致问题解决
问题现象
构建Android项目时触发警告:
compileProductionDebugJavaWithJavac任务JVM目标版本为17,而kaptGenerateStubsProductionDebugKotlin任务为1.8,二者版本需一致,Gradle 8.0+默认会转为错误。
无效尝试
先后尝试两种配置kapt生成Java 17存根的方法,均未消除警告:
- 在模块级
build.gradle中配置kapt的javac参数:kapt { javacOptions { option("-source", "17") option("-target", "17") } } - 在模块级
build.gradle中设置Kotlin的JVM目标:kotlinOptions { jvmTarget = "17" }
开启kapt3 verbose日志后确认javac选项已设为17,但警告依旧存在。
最终解决方法
在**项目级build.gradle**中添加subprojects配置,统一所有子模块的kapt存根生成任务JVM目标版本:
subprojects { tasks.withType(org.jetbrains.kotlin.gradle.tasks.KaptGenerateStubs) { kotlinOptions.jvmTarget = "17" } }
问题重现环境
- Gradle版本:8.1.1
- Android Gradle Plugin (AGP)版本:8.0.2
- Kotlin版本:1.8.22
- 编译SDK版本:33
- 目标SDK版本:33
内容的提问来源于stack exchange,提问作者Hector
相关产品推荐
相关产品推荐

