Android项目构建报错:compileDebugJavaWithJavac与kapt目标版本不兼容
解决Android项目JVM目标版本不兼容问题(无法修改Gradle文件场景)
报错信息
Caused by: org.gradle.api.GradleException: 'compileDebugJavaWithJavac'任务(当前目标版本为19)与'kaptGenerateStubsDebugKotlin'任务(当前目标版本为17)的JVM目标兼容性需设置为同一Java版本。
项目原Build配置
android { namespace 'com.something' compileSdk 34 defaultConfig { applicationId "com.something" minSdk 21 targetSdk 34 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true vectorDrawables.useSupportLibrary = true lintOptions { checkReleaseBuilds false } } buildTypes { // some configurations } compileOptions { sourceCompatibility JavaVersion.VERSION_19 targetCompatibility JavaVersion.VERSION_19 } kotlinOptions { jvmTarget = '19' } buildFeatures { buildConfig = true compose = true } composeOptions { kotlinCompilerExtensionVersion '1.4.7' } } dependencies { // some dependencies }
解决方案(无法修改项目build.gradle时)
仅靠Android Studio的GUI设置无法彻底解决这个问题,因为Gradle的JVM目标版本由构建脚本控制,AS常规设置无法覆盖脚本配置。但可以通过以下临时方式绕开:
调整Gradle JVM全局设置
打开File > Settings > Build, Execution, Deployment > Build Tools > Gradle,找到Gradle JVM选项,选择版本为19的JDK。这能保证AS使用的JDK版本和项目目标版本匹配,部分场景下可解决配置未生效的问题。通过全局Gradle属性覆盖配置
在用户目录下的.gradle/gradle.properties(Windows路径为C:\Users\[你的用户名]\.gradle\gradle.properties)中添加以下内容:kotlin.jvm.target=19 android.compileOptions.sourceCompatibility=19 android.compileOptions.targetCompatibility=19该配置会全局作用于所有使用此Gradle环境的项目,无需修改当前项目的任何文件。
修改项目gradle.properties(若允许)
如果项目根目录的gradle.properties可以修改,添加上述相同的属性配置,仅对当前项目生效,不会影响其他项目。
内容的提问来源于stack exchange,提问作者404NotFound
相关产品推荐
相关产品推荐

