Jenkins构建Flutter APK报:app:mergeReleaseResources执行失败
问题现象
在Jenkins上执行flutter build apk命令打包release版本APK时构建失败,构建默认开启sound null safety,运行assembleRelease Gradle任务时先提示Parameter format not correct -,最终抛出资源编译错误,完整报错日志如下:
C:\ProgramData\Jenkins\.jenkins\workspace\automated test app>flutter build apk Building with sound null safety Running Gradle task 'assembleRelease'... Parameter format not correct - FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:mergeReleaseResources'. > Multiple task action failures occurred: > A failure occurred while executing com.android.build.gradle.internal.res.Aapt2CompileRunnable > Android resource compilation failed ERROR:C:\Windows\System32\config\systemprofile\.gradle\caches\transforms-3\846e5094a0f0114af067375a609d094e\transformed\core-1.6.0\res\drawable-mdpi-v4\notification_bg_normal.9.png: AAPT: error: file not found. > A failure occurred while executing com.android.build.gradle.internal.res.Aapt2CompileRunnable > Android resource compilation failed ERROR:C:\Windows\System32\config\systemprofile\.gradle\caches\transforms-3\846e5094a0f0114af067375a609d094e\transformed\core-1.6.0\res\drawable-mdpi-v4\notification_bg_low_normal.9.png: AAPT: error: file not found. > A failure occurred while executing com.android.build.gradle.internal.res.Aapt2CompileRunnable > Android resource compilation failed ERROR:C:\Windows\System32\config\systemprofile\.gradle\caches\transforms-3\846e5094a0f0114af067375a609d094e\transformed\core-1.6.0\res\drawable-mdpi-v4\notification_bg_low_pressed.9.png: AAPT: error: file not found.
后续构建收尾日志:
* Get more help at https://help.gradle.org BUILD FAILED in 1m 25s Running Gradle task 'assembleRelease'... 86.2s Gradle task assembleRelease failed with exit code 1 Build step 'Execute Windows batch command' marked build as failure Finished: FAILURE
错误核心原因
- 构建触发
:app:mergeReleaseResources任务时出现多任务执行失败,执行Aapt2CompileRunnable阶段Android资源编译报错,提示Gradle缓存路径下core-1.6.0依赖包内3个.9.png格式的通知背景资源文件不存在 - 总构建耗时1分25秒,
assembleRelease任务退出码为1,Jenkins的Windows批处理执行步骤标记构建失败,最终任务状态为FAILURE
Gradle给出的排查方向:
添加
--stacktrace参数运行构建,获取完整堆栈追踪信息
添加--info或--debug参数运行构建,输出更详细的日志
添加--scan参数运行构建,生成完整构建分析报告
解决方案
按优先级依次操作即可修复:
- 清理损坏的Gradle缓存
直接删除报错路径对应的Gradle缓存目录C:\Windows\System32\config\systemprofile\.gradle\caches,重新执行构建命令即可。构建过程会自动重新拉取完整依赖资源,不会再出现资源文件缺失报错。
注意:如果Jenkins服务以Windows系统账号运行,默认Gradle缓存就会存放在上述System32路径下,该路径权限管控严格,很容易出现依赖下载中断、文件损坏、权限不足导致的文件缺失问题 - 修复路径参数格式错误
构建开头提示的Parameter format not correct -,根源是Jenkins工作空间路径包含空格(当前任务工作空间为automated test app,目录名带空格),执行批处理命令时未给路径加引号导致参数解析异常。直接把Jenkins任务工作空间改成无空格、无中文的命名,比如automated_test_app,就能彻底避免这类参数解析问题。 - 强制固定core依赖版本
如果清理缓存后仍然出现同类资源丢失问题,在项目android/app/build.gradle文件中添加配置强制指定core依赖版本,避免依赖拉取过程出现版本异常:
configurations.all { resolutionStrategy { force 'androidx.core:core:1.6.0' } }
内容的提问来源于stack exchange,提问作者Abdul Shadaab
相关产品推荐
相关产品推荐

