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

Android资源编译失败:无法提取ParsedResource问题求助

解决:app:mergeDebugResources任务失败——元素必须是资源引用或为空的问题

问题原因

这个错误是由于依赖库(fragment-1.5.4和core-1.15.0)中的<item>资源标签使用了不符合AAPT编译规则的硬编码值,而非资源引用或空值,导致资源合并时冲突。

解决方案

1. 升级依赖到稳定版本

这是最直接的解决方式,旧版本的依赖可能存在已知的资源定义问题:

  • 将androidx.fragment:fragment从1.5.4升级到最新稳定版(如1.6.2)
  • 将androidx.core:core从1.15.0升级到最新稳定版(如1.17.0)
  • 修改模块内的build.gradle或build.gradle.kts中的依赖声明,同步项目后重新编译。

2. 排除冲突的资源模块

如果暂时无法升级依赖,可以通过Gradle排除冲突的资源包:

dependencies {
    implementation("androidx.fragment:fragment:1.5.4") {
        exclude group: 'androidx.fragment', module: 'fragment-resources'
    }
    implementation("androidx.core:core:1.15.0") {
        exclude group: 'androidx.core', module: 'core-resources'
    }
}

⚠️ 注意:排除资源后要确认项目未使用这些被排除的资源,否则会引发其他错误。

3. 临时手动修复资源文件(不推荐)

仅作为应急手段,修改本地Gradle缓存中的依赖资源:

  • 找到本地缓存目录(通常是~/.gradle/caches/modules-2/files-2.1),搜索对应依赖的资源包并解压
  • 打开报错的values.xml文件,定位到指定行,将<item>标签内的硬编码值替换为资源引用(如@string/xxx)或设置为空
  • 注意:清理Gradle缓存后修改会失效,不建议长期使用。

4. 检查项目资源覆盖

查看项目自身的res/values目录下的资源文件,是否存在与依赖库同名的资源项,若有则修改项目内的资源名称或定义,避免合并冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 23:52:37