Flutter从master通道切换至stable后无法构建Release APK
Flutter Stable通道下Release构建失败问题处理
问题现象
- 可正常完成Debug模式APK构建
- 切换至Flutter Stable通道后,Release构建流程在执行
:app:lintVitalRelease任务时中断 - 切回Flutter Master通道构建可恢复正常,但因项目依赖库不兼容Master版本,必须使用Stable通道完成开发构建
- 核心报错为执行JetifyTransform时,提示指定Debug路径下的
libs.jar文件不存在,目标路径为build/app/intermediates/flutter/debug/libs.jar - 最终构建结果为执行
assembleRelease任务超时115.3s后失败,进程退出码为1
根因
Stable通道下Release构建的任务依赖逻辑存在路径匹配偏差:Release阶段的lint检查任务错误引用了Debug构建流程才会生成的libs.jar产物路径,纯Release构建场景下该路径下的文件不会自动生成,触发Jetify转换流程时因找不到输入文件直接中断。
分步解决方法
- 清理全量构建缓存后按顺序执行构建
依次执行以下命令清理本地残留的旧构建产物:
清理完成后先执行一次Debug构建触发目标jar文件生成:flutter clean cd android gradlew --stop gradlew clean cd ..
确认指定路径下存在flutter build apk --debuglibs.jar文件后,再执行Release构建命令:flutter build apk --release - 绕开错误触发的Release lint检查任务
打开android/app/build.gradle文件,在android {}代码块内添加lint配置,跳过会触发路径错误的检查任务:android { // 保留原有全部配置 lintOptions { checkReleaseBuilds false abortOnError false } } - 关闭非必要的Jetify转换流程
如果完成上述两步后仍存在JetifyTransform的路径报错,打开android/gradle.properties文件,确认/新增以下配置:
注意:关闭Jetifier前需确认项目内所有第三方依赖已完成AndroidX适配,避免出现旧Support库兼容问题。android.useAndroidX=true android.enableJetifier=false - 排障辅助方式
构建时追加日志参数,可获取更完整的堆栈信息定位具体路径匹配问题,可在构建命令后追加--stacktrace获取完整堆栈、追加--info或--debug获取更细的运行日志。
结果校验
完成配置修改后,再次执行全量缓存清理后构建,确认流程不再报文件不存在的转换错误,可正常生成Release APK即代表问题解决。
内容的提问来源于stack exchange,提问作者Tolegen Akilbekov
相关产品推荐
相关产品推荐

