You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 19:46:04