Android Studio添加kotlin-kapt插件后出现JVM版本兼容错误
解决kaptGenerateStubsDebugKotlin与compileDebugJavaWithJavac的JVM目标版本不兼容问题
问题重现
添加kotlin-kapt插件后构建失败,错误信息如下:
Execution failed for task ':app:kaptGenerateStubsDebugKotlin'. 'compileDebugJavaWithJavac' task (current target is 1.8) and 'kaptGenerateStubsDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version. Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain
解决方案
方法1:用Gradle JVM工具链统一版本(推荐)
在app模块的android块中添加JVM工具链配置,强制所有编译任务(包括kapt)使用同一Java版本:
修改后的app模块build.gradle关键代码:
android { namespace 'com.example.roomtrain' compileSdk 34 defaultConfig { // 原有配置保留 } buildTypes { // 原有配置保留 } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 // 新增工具链指定 toolchain { languageVersion = JavaLanguageVersion.of(8) } } kotlinOptions { jvmTarget = '1.8' } buildFeatures { dataBinding true } }
方法2:单独为kapt指定JVM目标版本
如果工具链配置无效,直接给kapt任务设置匹配的JVM参数:
在app模块build.gradle中新增kapt配置块:
kapt { javacOptions { option("-source", "1.8") option("-target", "1.8") } }
同时确保kotlinOptions中的jvmTarget保持为1.8。
收尾步骤
修改完成后,执行清理并重新构建:
./gradlew clean build
Windows环境执行:
gradlew.bat clean build
内容的提问来源于stack exchange,提问作者sajede ahmadi
相关产品推荐
相关产品推荐

