Flutter执行:app:compileReleaseKotlin任务失败 JetifyTransform转换jar包报错
问题根因
这个报错是项目开启了Jetifier(自动把旧support库转换为androidx的工具),但你依赖的com.android.tools:common:27.0.1和com.android.tools.build:bundletool:0.13.2这两个库本身使用了硬编码的android.support包名字符串(多为反射场景使用),Jetifier无法自动转换这种字符串字面量,因此触发编译失败。
解决方案
按优先级依次尝试:
- 升级过时的Android构建依赖
打开项目android目录下的build.gradle文件,将com.android.tools.build:gradle版本升级到4.0+以上的稳定版,对应的bundletool会自动匹配兼容androidx的新版本,示例配置:
同时修改buildscript { dependencies { // 替换为当前适配你Android Studio版本的稳定版即可,比如7.4.2 classpath 'com.android.tools.build:gradle:7.4.2' } }android/gradle/wrapper/gradle-wrapper.properties里的gradle版本和插件版本匹配,比如插件7.4.2对应gradle版本7.5:distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip - 清理缓存重新构建
执行以下命令清理旧的构建缓存和gradle缓存:
清理完成后重新打Release包测试。# 进入项目android目录 cd android # 清理gradle构建缓存 ./gradlew clean # 清理Flutter全局构建缓存 flutter clean - 手动排除冲突依赖
如果升级构建工具后仍报错,说明是第三方Flutter插件依赖了旧版本的冲突库,在android/app/build.gradle里添加配置排除冲突组件:configurations { all { exclude group: 'com.android.tools', module: 'common' exclude group: 'com.android.tools.build', module: 'bundletool' } } - 临时关闭Jetifier(仅做测试验证,不推荐长期使用)
如果只是临时打包验证功能,可修改android/gradle.properties文件,将android.enableJetifier=true改为false,该方案要求你项目所有依赖都已完成androidx迁移,否则会触发其他兼容报错。
内容的提问来源于stack exchange,提问作者Wasiq Hussain
相关产品推荐
相关产品推荐

