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

Android mergeDebugResources任务失败:values.xml资源编译遇非法字符报错

Android mergeDebugResources任务失败:values.xml资源编译遇非法字符报错

嘿,看起来你碰到了Android资源编译时的路径非法字符问题,咱们一步步拆解解决它!

错误根源定位

从报错日志里能揪出核心问题:

java.nio.file.InvalidPathException: Illegal char <:> at index 45: cn.iso.product.projectname-mergeDebugResources-51:/values/values.xml

这里的资源路径里出现了冒号(:),而Windows系统的文件路径不允许冒号出现在文件名/路径中间(盘符后的冒号除外),直接导致AAPT2资源编译工具无法正确识别文件路径,最终触发mergeDebugResources任务失败。

排查与解决步骤

  • 检查资源文件中的特殊字符
    虽然你提供的values.xml片段看起来都是正常的@string引用,但得仔细排查:

    • 所有string、drawable、layout等资源的名称里,有没有包含冒号、斜杠这类特殊字符?比如有没有定义类似<string name="abc:def">...</string>的资源?
    • 检查所有资源文件名,比如drawable的图片名、layout的xml文件名,有没有带冒号或其他非法字符。
  • 清理缓存后重新构建
    有时候缓存的中间文件会出现异常,执行以下操作试试:

    ./gradlew clean
    

    之后手动删除项目根目录的.gradle文件夹、app模块下的build文件夹,再重新执行构建命令:

    ./gradlew assembleDebug
    
  • 检查gradle配置的命名合法性
    报错路径里出现了cn.iso.product.projectname,去检查模块级build.gradle里的applicationId、模块名称有没有包含特殊字符,确保它们是合法的标识符(无冒号、空格等)。

  • 查看合并后的临时values.xml文件
    日志里明确指出编译失败的文件是D:\android\app\build\intermediates\incremental\debug\mergeDebugResources\merged.dir\values\values.xml,你可以打开这个临时文件,对比你提供的代码片段,看看里面有没有新增的异常资源引用或非法字符(比如其他依赖模块带过来的问题资源)。

额外提醒

如果是多模块项目,别忘了检查依赖的其他模块的资源文件,因为合并资源时会整合所有模块的内容,其他模块的非法资源命名也会导致主模块编译失败。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 08:28:00