Jenkins - 任务 ':app:mergeDebugResources' 执行失败

Jenkins - Execution failed for task ':app:mergeDebugResources'

我正在尝试使用 Jenkins,但是我无法使用它构建 apk,因为我在使用 AAPT2 和 Gradle.

时遇到问题
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> 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\b478eb984dbbd1317dab9bfd9689b3aa\transformed\appcompat-1.3.0\res\drawable-hdpi-v4\abc_list_divider_mtrl_alpha.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\b478eb984dbbd1317dab9bfd9689b3aa\transformed\appcompat-1.3.0\res\drawable-xhdpi-v4\abc_list_divider_mtrl_alpha.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\b478eb984dbbd1317dab9bfd9689b3aa\transformed\appcompat-1.3.0\res\drawable-mdpi-v4\abc_list_divider_mtrl_alpha.9.png: AAPT: error: file not found.

我已经阅读了大量可能与我的案例有相同问题的 SO 问题,说它与文件路径太长有关,但我仍然找不到任何解决方案。

更新

我尝试更改 Android Studio Gradle 主页,类似于 Jenkins 使用的主页,但收到类似的错误,这表明它可能确实与长文件路径有关。

我认为最后一个问题是如何更改 Jenkins Gradle 主页?

如果您在 Windows.
中使用 jenkins 提供路径,则需要将 \ 替换为 \ 可能是文件路径太大或者这是根本原因,您可以尝试将目录挂载到短路径

编辑:根据您修改的问题:
打开詹金斯仪表板。导航到 Manage Jenkins-> Configure System。在 Global properties section 下添加另一个名为 GRADLE_USER_HOMEenvironment variable,如下所示。

我 运行 进入了这个确切的问题,但不幸的是更改 GRADLE_USER_HOME 环境变量没有帮助,因为 aapt2 似乎忽略了更改并且仍然使用 Windows/system32/...用于缓存位置。

问题是我如何 运行 Jenkins 即服务。在 service.msc 设置中,它被设置为以本地系统帐户登录,这将 USER_HOME 变量设置为 C:\Windows\System32。因此,错误提示文件不存在的原因是 Jenkins/gradle 无法访问 System32 文件夹。

我的解决方法是将登录方法更改为 'This account',然后输入一个用户帐户,这样 Jenkins 就不再以系统身份登录了。