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

Android Studio报Can not extract resource资源编译失败如何解决

问题根因

该报错属于AAPT2资源合并阶段的解析异常,核心触发原因是values类资源在合并过程中出现无法解析的条目,常见场景包括:

  • 项目自身values目录下的资源存在不合法写法:比如资源名含大写/特殊字符、资源值含未转义的特殊符号、空资源值、XML标签语法错误
  • 项目资源和第三方依赖的values资源重名冲突,values资源无命名空间隔离,重名合并时会触发解析逻辑异常
  • 增量编译缓存损坏,build目录下生成的中间合并资源文件是残缺/旧版本损坏文件
  • Android Gradle插件(AGP)、Gradle、Build Tools版本不匹配,导致AAPT2资源解析逻辑运行异常
排查修复步骤

按从易到难顺序操作即可:

  1. 优先排除编译缓存问题
  • 依次点击Android Studio顶部菜单 Build -> Clean Project,执行完成后再点击 Build -> Rebuild Project,缓存损坏导致的问题这一步可直接修复
  • 若操作后仍报错,完全关闭Android Studio,手动删除项目根目录下的.gradle文件夹、app/build文件夹,重新打开项目等待Gradle同步完成后再次尝试编译
  1. 定位项目内非法资源
  • 不要直接查看报错路径下build目录内的merged values.xml,该文件是自动生成的中间产物,直接检查项目源码路径app/src/main/res/values/下的所有XML文件:
    • 校验所有资源命名:仅允许使用小写英文字母、数字、下划线,不能包含大写字母、中文、特殊符号,不能以数字开头
    • 校验资源值:字符串、颜色等资源值中如果包含&、<、'、"这类特殊字符必须按XML规则转义,例如&需写为&amp;、<需写为&lt;,字符串内的双引号需加反斜杠转义
    • 排查是否存在空值资源、标签未闭合、属性写错的条目,例如空的string节点、style节点下item属性名写错的问题
    • 若近期新增过大量资源,可通过逐段注释新增资源、每次注释后编译的二分法快速定位出错的资源条目
  1. 排查资源冲突与构建配置问题
  • 打开Android Studio右侧Gradle面板,执行app -> Tasks -> android -> androidDependencies查看依赖树,排查是否存在重复引入、版本冲突的第三方依赖,冲突依赖可通过exclude规则排除重复的资源项
  • 若开启了资源压缩,可临时在app层级的build.gradle中把shrinkResources设为false,排查是否为资源压缩阶段误删必要资源导致的异常
  • 校验构建版本匹配性:确认AGP版本和Gradle版本为官方适配的组合,无需手动指定buildToolsVersion,使用AGP默认绑定的Build Tools版本即可,避免手动指定过旧/过新的版本导致兼容问题
  1. 获取精准错误日志
  • 若以上步骤都未定位问题,在项目根目录打开终端,Windows系统执行gradlew.bat assembleDebug --stacktrace,Mac/Linux系统执行./gradlew assembleDebug --stacktrace,全量编译日志会直接打印触发解析异常的具体资源条目,根据日志提示对应修复即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:48:25