升级至Android Studio Flamingo 2022.2.1后编译报错:kaptGenerateStubsDebugKotlin任务失败
修复JVM目标版本不兼容错误
你遇到的问题是kapt生成桩代码的任务默认使用了Android Studio运行时的Java 17,而你的Java编译任务配置的是1.8,版本不匹配导致冲突。可以通过以下两种方式解决:
方案一:升级JVM目标版本到17(推荐)
将Java和Kotlin的编译目标统一升级到17,适配当前Android Studio的运行环境,修改后的Gradle配置如下:
compileSdk 33 defaultConfig { minSdk 23 targetSdk 33 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" javaCompileOptions { annotationProcessorOptions { arguments = ["room.incremental": "true"] } } consumerProguardFiles 'proguard-rules.pro' } compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" } // 可选:配置工具链确保使用指定版本的JDK kotlin { jvmToolchain(17) }
方案二:强制所有任务使用Java 8
如果不想升级版本,通过配置Gradle工具链,强制kapt和Java编译任务都使用Java 8,修改配置如下:
compileSdk 33 defaultConfig { minSdk 23 targetSdk 33 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" javaCompileOptions { annotationProcessorOptions { arguments = ["room.incremental": "true"] } } consumerProguardFiles 'proguard-rules.pro' } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } // 添加工具链配置,统一指定Java 8 kotlin { jvmToolchain(8) }
修改完成后,同步Gradle并重新编译项目即可解决该错误。
内容的提问来源于stack exchange,提问作者Marat
相关产品推荐
相关产品推荐

