【问题标题】:Jenkins Android build :app:mergeDebugResources problemJenkins Android 构建:app:mergeDebugResources 问题
【发布时间】:2019-01-31 07:31:11
【问题描述】:

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

任务:app:cleanBuildCache 任务:清洁最新 任务:应用程序:清洁 任务:app:preBuild UP-TO-DATE 任务: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 失败

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 对此没有任何问题,老实说,我不知道如何删除这个文件。

希望您能帮我找到解决方案,感谢您的宝贵时间。

【问题讨论】:

  • 这个问题完全没有产生错误的build.gradle

标签: android jenkins


【解决方案1】:

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

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

【讨论】:

  • 是的,我将 Gradle 更新到最新版本,但没有帮助。
  • @MaciejGrodzki 该路径只有 161 个字符;类似的问题和答案提示清理项目、损坏的九个补丁文件或提供库(在 Windows 上为 DLL)。如果没有build.gradle,这种行为几乎无法重现。 mergeDebugResources 甚至是无意义的,因为该库应该以发布模式构建;将一些奇怪的东西放入资源中,例如。 JPG 重命名为 PNG 也可能导致,aaptOptions.cruncherEnabled = falseaaptOptions.useNewCruncher = false 只是解决方法,而问题可能是文件损坏。
  • PS:Windows 10 甚至不再有任何 NTFS 255 字符限制的路径...检查所有 drawable 资源文件头可能是查找损坏文件的最佳选择; PNG 文件的前 8 个字节应始终为 137 80 78 71 13 10 26 10。这一切都暗示 cruncher 接收到它无法处理的输入(或弄乱了缓存文件)。从版本控制中签出新副本,让 Jenkins 在构建之前清理工作区。有关规格,请参阅 libpng.org/pub/png/spec/1.2/PNG-Structure.htmldevelopers.google.com/speed/webp/docs/riff_container
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-19
  • 2014-08-10
  • 1970-01-01
  • 2020-05-13
  • 1970-01-01
相关资源
最近更新 更多