Flutter打包APK时出现:app:lintVitalRelease执行失败问题求助
解决Flutter打包APK时
:app:lintVitalRelease失败及JetifyTransform错误的方案 问题根源
类文件主版本59对应JDK 15,而Jetify(AndroidX转换工具)对高版本JDK编译的jar包支持有限;同时flutter_local_notifications依赖的bcprov-jdk15on-1.68.jar使用JDK15编译,导致转换失败,进而影响lintVitalRelease任务执行。
具体解决步骤
1. 升级Android Gradle插件与Gradle版本
Jetify的兼容性和Android Gradle插件(AGP)版本强相关,升级到支持高JDK版本的AGP和Gradle:
- 打开
android/build.gradle,修改dependencies中的AGP版本:dependencies { classpath 'com.android.tools.build:gradle:7.4.2' // 或更高兼容版本 // ...其他依赖 } - 打开
android/gradle/wrapper/gradle-wrapper.properties,修改Gradle版本:distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip // 对应AGP7.4.2的Gradle版本
2. 替换冲突依赖版本
强制将bcprov-jdk15on替换为更低兼容版本(比如1.65,基于JDK8编译):
打开android/app/build.gradle,在dependencies块中添加:
dependencies { // ...其他依赖 implementation('com.dexterous:flutter-local-notifications:你的当前版本号') { exclude group: 'org.bouncycastle', module: 'bcprov-jdk15on' } implementation 'org.bouncycastle:bcprov-jdk15on:1.65' }
3. 让Jetify跳过目标jar包转换
若不想替换依赖,可配置Jetify跳过bcprov-jdk15on-1.68.jar的转换:
打开android/gradle.properties,添加:
android.jetifier.blacklist=bcprov-jdk15on-1.68.jar
4. 临时禁用lint检查(不推荐长期使用)
若上述方案暂时无法生效,可先跳过lint检查完成打包(后续需修复依赖问题):
打开android/app/build.gradle,在android块中添加:
android { // ...其他配置 lintOptions { checkReleaseBuilds false abortOnError false } }
5. 清理缓存重新构建
执行以下命令清理缓存,避免旧文件干扰:
flutter clean cd android ./gradlew clean ./gradlew build --refresh-dependencies cd .. flutter build apk
内容的提问来源于stack exchange,提问作者Muqri Hafiy
相关产品推荐
相关产品推荐

