Android Studio报mergeDebugResources错误:xliff 1.2无效URL问题
解决Android Studio中
:app:mergeDebugResources资源提取错误 核心解决方案
1. 清理编译缓存并重新构建
执行命令彻底清除Gradle编译缓存,避免旧文件残留导致的异常:
./gradlew clean ./gradlew assembleDebug
Windows环境替换为:
gradlew clean gradlew assembleDebug
2. 定位并修正原始资源文件
合并后的value.xml是编译生成的临时文件,问题根源在项目或依赖库的原始资源中:
- 遍历项目
res/values目录下所有xml文件(如strings.xml、styles.xml),检查根节点的xmlns声明:- 确保tools命名空间为
http://schemas.android.com/tools(Android官方标准,编译时无需联网访问该域名,工具内置相关规则) - 保留XLIFF命名空间
urn:oasis:names:tc:xliff:document:1.2(这是本地化标准标记,无需对应XSD文件)
- 确保tools命名空间为
- 排查第三方依赖:用
./gradlew app:dependencies查看依赖树,升级或替换包含旧资源声明的老旧依赖库。
3. 临时应急方案
若上述方法无效,可手动修改报错日志指向的merged.dir/values/value.xml,将xmlns修正为标准值后重新执行构建。
关键疑问解答
为什么会出现这些xmlns?
urn:oasis:names:tc:xliff:document:1.2是XLIFF本地化规范的官方URN,并非过时内容,Android资源编译工具原生支持该标记用于多语言字符串处理,不需要对应的XSD文件。http://schemas.android.com/tools是Android官方工具命名空间,用于编译时指令(如tools:ignore),当前仍在正常使用,编译时无需实际访问该域名,工具内置了对应的规则逻辑。
旧方案失效的原因
10年前的Rebuild、特定网址访问方案针对的是旧版Android Studio和构建工具的缓存问题,当前新版本构建工具的缓存机制已更新,因此旧方案不再生效。仅重启Android Studio无法清理Gradle层面的编译缓存,必须用clean命令彻底清除。
内容的提问来源于stack exchange,提问作者ArrowInTree
相关产品推荐
相关产品推荐

