Android命令行打包报错:Unknown Kotlin JVM target:22求解决
解决Gradle命令行打包JVM Target 22错误问题
问题场景
- Android Studio通过
Build → Generate signed App bundle / APK菜单生成签名包正常,但执行./gradlew bundleRelease命令行打包时失败 - 错误核心:
:app:kaptGenerateStubsReleaseKotlin任务执行失败,提示Unknown Kotlin JVM target: 22 - 附带警告:
android.defaults.buildfeatures.buildconfig=true配置已废弃 - 已在模块级
build.gradle配置Java 17与Kotlin JVM Target 17:compileOptions { coreLibraryDesugaringEnabled true sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' }
一、修复JVM Target 22错误
1. 升级Kotlin Gradle插件版本
项目根目录的build.gradle中,确保Kotlin插件版本支持Java 17(建议使用1.8.0及以上稳定版)。旧版本Kotlin插件可能无法识别依赖或模块隐式传递的高版本JVM Target:
buildscript { repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:8.2.0" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.20" // 需与Gradle版本匹配 } }
2. 全局强制统一JVM Target
在项目根目录的gradle.properties中添加全局配置,覆盖依赖或模块隐式设置的JVM Target:
# 强制所有模块使用JVM Target 17 kotlin.jvm.target=17 # 关闭JVM Target版本校验的严格模式(可选,避免版本不匹配报错) kotlin.jvm.target.validation.mode=warning
3. 统一kapt编译参数
kapt任务可能未继承主配置的JVM Target,需在模块级build.gradle中显式指定:
kapt { javacOptions { option("-source", "17") option("-target", "17") } }
二、处理buildConfig废弃警告
在模块级build.gradle的android块中显式声明buildFeatures配置,替代默认的废弃参数:
android { buildFeatures { buildConfig true // 显式启用BuildConfig生成 } }
内容的提问来源于stack exchange,提问作者Miguel
相关产品推荐
相关产品推荐

