首页 > 解决方案 > Jenkins Android 构建:app:mergeDebugResources 问题

问题描述

我正在尝试在本地 Jenkins v2.150.2 (Windows) 上配置项目以使用 gradle 包装器构建我的 android 应用程序。我花了很多时间,但在 mergeDebugResources 时仍然出现以下错误。

任务 :app:cleanBuildCache 任务 :clean 最新任务 :app:clean 任务 :app:preBuild 最新任务 :app:preDebugBuild 任务 :app:compileDebugAidl NO-SOURCE 任务 :app:compileDebugRenderscript 任务 :app: checkDebugManifest 任务 :app:generateDebugBuildConfig 任务 :app:prepareLintJar 任务 :app:generateDebugSources 任务 :app:dataBindingExportBuildInfoDebug 任务 :app:dataBindingMergeDependencyArtifactsDebug 任务 :app:generateDebugResValues 任务 :app:generateDebugResources 任务 :app:mergeDebugResources FAILED

FAILURE:构建失败并出现异常。

出了什么问题:任务“:app:mergeDebugResources”执行失败。

java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: Android 资源编译失败 C:\Windows\System32\config\systemprofile.gradle\caches\transforms-1\files-1.1\appcompat -v7-28.0.0.aar\17dd212fa1026015c542616bd4b41905\res\drawable-hdpi-v4\abc_textfield_search_default_mtrl_alpha.9.png:错误:找不到文件。

到目前为止,我读到 Windows 上的路径长度不应超过 255 个字符。我可以在 Jenkins > Manage Jenkins > Configure system 中找到所有项目的全局工作区位置(可能不再可用),所以我只为单个作业(项目)更改了工作区路径。之后我看到 Jenkins 将一些文件复制到选定的位置,包括 .gradle 和 gradle 包装器,但正如您可以在错误日志中看到的那样,它仍然使用 C:\Windows\System32 中的文件。我不确定这是否是问题所在,但我不知道如何改变它。如果我可以存储所有 Jenkins 缓存工作区并为所有项目构建自定义本地化以使其清晰,那将是很棒的。

在其他帖子中,我读到 abc_textfield_search_default_mtrl_alpha.9.png 可能已损坏,从项目中删除它通常会有所帮助。这很奇怪,因为 Android Studio 对此没有任何问题,老实说,我不知道如何删除这个文件。

我希望你能帮助我找到解决方案,并感谢你的时间。

标签: androidjenkins

解决方案


这是一个特定于 Windows 的问题;将 Gradle 插件更新为:

classpath "com.android.tools.build:gradle:3.2.1"

推荐阅读