【问题标题】:Jenkins Gradle app:mergeDebugResources Unable to open PNG fileJenkins Gradle 应用程序:mergeDebugResources 无法打开 PNG 文件
【发布时间】:2017-09-26 06:12:27
【问题描述】:

我可以从 Android Studio 和 cmd 进行 gradle 构建。但是这个问题只在构建时出现在 Jenkins 中。这个问题没有出现在 Mac Jenkins 设置中,而是出现在我的 Windows 设置中。

以下是我的 gradle 设置。

:app:mergeBetaDebugResources

AAPT: \\?\C:\Windows\System32\config\systemprofile\.android\build-cache\671e94b2d47b0ef7a24e43f8814a29b911cc4872\output\res\drawable-ldrtl-mdpi\abc_ic_ab_back_mtrl_am_alpha.png ERROR: Unable to open PNG file
AAPT: \\?\C:\Windows\System32\config\systemprofile\.android\build-cache\7dc509eb0db17265925a5800b67445547ef97697\output\res\drawable-hdpi\common_google_signin_btn_text_dark_disabled.9.png ERROR: Unable to open PNG file
AAPT: \\?\C:\Windows\System32\config\systemprofile\.android\build-cache\671e94b2d47b0ef7a24e43f8814a29b911cc4872\output\res\drawable-ldrtl-xxxhdpi\abc_ic_menu_copy_mtrl_am_alpha.png ERROR: Unable to open PNG file
Error: Some file crunching failed, see logs for details
:app:mergeBetaDebugResources FAILED

【问题讨论】:

  • 您的问题 ID 是否已修复?禁用缓存时我仍然遇到同样的错误。
  • 是的。 Ygor的回答确实帮助了我。在你的 gradle.properties 中添加 android.enableBuildCache=false
  • 我在 Team City 构建中遇到了同样的问题。 Ygor 接受的答案起到了作用。

标签: jenkins gradle


【解决方案1】:

此错误是由于构建缓存的新功能造成的。它使用的是默认的 build-cache 文件夹,这是一个长路径。您可以通过将 android.enableBuildCache=false 添加到 gradle.properties 或设置构建缓存路径来禁用构建缓存。见https://developer.android.com/studio/build/build-cache.html

【讨论】:

  • 禁用 buildcache 会损害您的开发效率。尝试将 jenkins 中的环境变量 GRADLE_USER_HOME 设置为另一个文件夹,如 c:/Users/someuser
  • @CassioLandim 有正确答案!我已经在 J​​enkins 上遇到这个问题好几个星期了!非常感谢!
【解决方案2】:

:app:generateReleaseResources遇到错误的人必须在gradle3.x之后添加以下行到gradle.properties

android.enableBuildCache=false
android.enableAapt2=true

【讨论】:

    【解决方案3】:

    vi gradle.properties

    android.buildCacheDir=C:/Users/Administrator/.android/build-cache

    【讨论】:

      【解决方案4】:

      @CassioLandim 绝对正确,非常感谢。这个错误困扰了我将近一周。

      禁用 buildcache 会损害您的开发效率。尝试将 jenkins 中的环境变量 GRADLE_USER_HOME 设置为另一个文件夹,如 c:/Users/someuser

      偶尔找个简单的方法,job -> config -> build, hook Force GRADLE_USER_HOME GRADLE_USER_HOME image GRADLE_USER_HOME

      【讨论】:

      • Force GRADLE_USER_HOME 将下载另一个 Gradle 文件,这意味着您最终将在每个项目上拥有多个 Gradle dist 文件夹,这很糟糕并且浪费磁盘空间。不是一个好的解决方案。
      猜你喜欢
      • 2017-05-03
      • 1970-01-01
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      • 2020-02-09
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      相关资源
      最近更新 更多