生成签名APK时:app:lintVitalRelease任务失败求助
解决签名APK构建时
lintVitalRelease失败的问题 错误核心原因
错误提示里的Unsupported class file major version 59是关键:这个版本号对应Java 15编译的字节码,而你当前使用的Jetifier(Android Gradle Plugin内置的依赖转换工具)版本不支持处理这么高版本的字节码文件。
你能正常构建签名Bundle却无法生成APK,是因为lintVitalRelease是APK发布构建的强制检查环节,会触发所有依赖的Jetify转换;而Bundle构建流程未触发该任务的完整依赖转换逻辑,因此没暴露问题。
解决方案
方案1:升级Android Gradle Plugin(AGP)与Gradle版本
Jetifier的能力随AGP版本升级而提升,更新到支持Java 15字节码的版本:
- 确保AGP版本至少为7.0.0(该版本开始支持Java 15及更高版本的字节码处理)
- Gradle版本需与AGP匹配:AGP 7.0.x对应Gradle 7.0+,AGP 7.1.x对应Gradle 7.2+,以此类推
修改项目根目录的build.gradle(或build.gradle.kts):
// 根目录build.gradle buildscript { repositories { google() mavenCentral() } dependencies { // 替换为兼容的AGP版本,例如7.4.2 classpath 'com.android.tools.build:gradle:7.4.2' } }
修改gradle/wrapper/gradle-wrapper.properties中的Gradle版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
方案2:替换兼容版本的bcprov-jdk15on依赖
若暂时不想升级AGP,可强制替换bcprov-jdk15on为更低版本(如1.67,该版本基于Java 8编译,无版本兼容问题):
在app模块的build.gradle(或build.gradle.kts)中添加:
// app模块build.gradle dependencies { // 排除依赖树中的旧版bcprov-jdk15on configurations.all { exclude group: 'org.bouncycastle', module: 'bcprov-jdk15on' } // 添加兼容版本 implementation 'org.bouncycastle:bcprov-jdk15on:1.67' }
方案3:临时跳过lintVitalRelease检查(不推荐)
若需紧急生成APK,可临时禁用该检查,但会丢失发布前的关键lint校验,不建议长期使用:
在app模块的build.gradle中添加:
// app模块build.gradle android { buildTypes { release { lintOptions { checkReleaseBuilds false abortOnError false } } } }
验证步骤
- 执行
./gradlew clean清除缓存 - 重新尝试构建签名APK
内容的提问来源于stack exchange,提问作者Elam
相关产品推荐
相关产品推荐

