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

Android Studio aaptcompiler资源提取报错解决方案咨询

问题说明

报错Can not extract resource from com.android.aaptcompiler.ParsedResource@502699b7属于AAPT2资源编译阶段的解析失败,注意:报错里的@502699b7是资源对象在内存中的哈希地址,不对应任何具体资源名,不要尝试搜索这个字符串定位问题。
你已经完成硬编码字符串提取到strings.xml仍未解决,说明问题不在硬编码字符串本身,是其他资源异常或缓存问题导致的。

常见诱发原因
  • 资源语法不合法:包括XML文件标签未闭合、特殊字符未转义、属性值格式不符合要求、资源命名违反全小写+下划线的规范
  • 无效资源引用:布局、Manifest、菜单、样式等文件中引用了已删除、不存在、拼写错误的资源,或跨模块引用了非公开的资源
  • 字符串资源格式错误:迁移到strings.xml的文本中包含未转义的特殊字符(&、<、>、单双引号等),或格式化占位符写法错误
  • 非字符串资源损坏:图片资源格式与后缀不匹配、文件损坏,颜色、尺寸、数组、样式等资源的值非法
  • 编译缓存残留:旧的异常编译产物、IDE缓存未清理,导致修改资源后仍读取旧的错误文件触发报错
排查修复步骤

按从易到难顺序操作,不要上来就删工程重导:

  1. 定位具体出错位置
    不要只看Build窗口最顶部的精简报错,切换到Build输出的详细模式,往下翻找AAPT2打印的具体出错文件路径、行号信息。如果IDE里看不到完整日志,在项目根目录终端执行以下命令编译,输出的堆栈信息会明确标出错误位置:
    # Windows系统用gradlew.bat代替./gradlew
    ./gradlew assembleDebug --stacktrace
    
  2. 校验字符串资源格式
    重点检查你刚迁移到strings.xml的内容,所有特殊字符必须做对应转义:
    • & 替换为 &amp;
    • < 替换为 &lt;
    • 无外层双引号包裹的单引号替换为\'
    • 带动态参数的字符串如果占位符不按顺序匹配,要补充formatted="false"属性,示例:
      <!-- 错误写法:&未转义 -->
      <string name="share_tip">分享到QQ&朋友圈</string>
      
      <!-- 正确写法 -->
      <string name="share_tip">分享到QQ&amp;朋友圈</string>
      
  3. 扫描无效资源引用
    全局检查所有XML文件(布局、AndroidManifest、菜单、drawable、动画、样式等)中的@xxx/格式引用,确认:
    • 引用的资源真实存在,无拼写错误、大小写错误(资源名必须全小写)
    • 最近新增/修改的自定义View属性名、format配置正确,不存在未声明的属性
  4. 排查非字符串资源异常
    • 检查最近新增的图片资源,确认文件后缀和真实格式一致,不要手动修改文件后缀名,损坏的图片重新导出替换
    • 检查颜色、尺寸、样式资源值是否合法:颜色值必须带#开头,为6位(RGB)或8位(ARGB)十六进制值,尺寸值要带正确单位
  5. 清理缓存重编译
    上述步骤都没定位到问题时,按顺序清理缓存:
    • 点击菜单栏 Build -> Clean Project,完成后执行 Build -> Rebuild Project
    • 仍报错就关闭Android Studio,删除项目根目录下的.gradle文件夹、app/build文件夹,重新打开项目等待Gradle同步完成后再编译
    • 极端情况执行 File -> Invalidate Caches...,勾选清除IDE缓存后重启

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 04:12:24