You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hudson构建任务因AAPT2报错失败:appcompat-v7文件缺失

Hudson Android构建任务AAPT2执行失败问题排查

问题描述

我的Hudson构建任务执行失败,报错核心信息如下:

Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details

日志中重复出现类似文件找不到的记录:

C:\Windows\System32\config\systemprofile\.gradle\caches\transforms-1\files-1.1\appcompat-v7-26.1.0.aar\3bbc697d357b69b5ea5f78a35f99a514\res\color\abc_hint_foreground_material_dark.xml: error: file not found.

我已经查阅过相关AAPT2报错的社区讨论,但未找到适配的解决方案,想请教该构建失败的具体原因和解决方向。

原因分析与解决建议

从你给出的报错细节来看,核心问题出在Gradle缓存中的aar包损坏或不完整,导致AAPT2在处理资源时找不到指定文件。下面是具体的分析和可落地的解决步骤:

1. Gradle本地缓存损坏

Hudson构建时使用的是系统账户(systemprofile)的Gradle缓存,这个路径下的appcompat-v7-26.1.0.aar解压后的资源文件缺失,大概率是缓存下载中断、磁盘写入错误或者缓存文件损坏导致的。

  • 解决步骤:
    • 手动删除该损坏的缓存目录:C:\Windows\System32\config\systemprofile\.gradle\caches\transforms-1\files-1.1\appcompat-v7-26.1.0.aar\3bbc697d357b69b5ea5f78a35f99a514
    • 或者直接清空整个transforms缓存文件夹:C:\Windows\System32\config\systemprofile\.gradle\caches\transforms-1
    • 重新触发Hudson构建,让Gradle重新下载并解压完整的aar包

2. Hudson构建账户权限不足

系统账户systemprofile对Gradle缓存目录的读写权限可能存在限制,导致aar包无法完整写入磁盘,最终出现文件缺失的情况。

  • 解决步骤:
    • 右键点击C:\Windows\System32\config\systemprofile\.gradle目录,选择「属性」-「安全」选项卡
    • 确保Hudson服务运行的账户(通常是Local System或你指定的服务账户)拥有该目录的完全控制权限
    • 应用权限设置后重新执行构建任务

3. 依赖仓库源不稳定

如果你的构建脚本配置的依赖仓库(比如jcenter、mavenCentral)网络不稳定,可能导致下载的aar包本身就不完整。

  • 解决步骤:
    • 在项目根目录的build.gradle文件中,切换到更稳定的镜像源
    • 或者手动下载完整的appcompat-v7-26.1.0.aar文件,放置到本地maven仓库中,修改构建脚本优先从本地仓库获取依赖

4. AAPT2与AGP版本不兼容

虽然你提到已经查阅过相关问题,但还是要确认下项目使用的Android Gradle Plugin(AGP)版本和AAPT2是否匹配。appcompat-v7-26.1.0对应的AGP版本建议在3.0.x到3.2.x之间,版本不匹配也可能引发资源处理异常。

  • 解决步骤:
    • 打开项目根目录的build.gradle,检查com.android.tools.build:gradle的版本号,调整到适配的范围
    • 同步项目配置后重新触发Hudson构建

内容的提问来源于stack exchange,提问作者rorold

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:48:47