Android Studio编译报错:ResourceCompilerRunnable执行失败求助
解决Android Studio升级Gradle后
:app:mergeDebugResources失败问题 错误定位步骤
- 查看详细编译日志:在终端执行
./gradlew assembleDebug --info,搜索错误日志里的具体资源条目,直接定位合并后values.xml里出问题的行,追溯到对应的源资源文件(大概率来自timezonepicker模块)。 - 排查第三方模块资源:打开timezonepicker模块的
res/values目录下所有xml文件,检查是否存在未转义的特殊字符(比如单引号'、双引号"),或是格式错误的资源标签(如未闭合标签、属性值格式异常)。 - 验证模块关联性:注释掉build.gradle中对timezonepicker的依赖,重新编译。若编译成功,即可确认该模块是问题根源。
具体解决方法
- 修复第三方模块资源:
- 若发现字符串含未转义引号,比如
<string name="tz_label">It's a timezone</string>,修改为<string name="tz_label">It\'s a timezone</string>(转义单引号),或是用双引号包裹字符串内容<string name="tz_label">"It's a timezone"</string>。 - 若存在xml格式错误(如标签未闭合、属性缺失),直接修正对应代码。
- 若发现字符串含未转义引号,比如
- 迁移本地模块:将timezonepicker的代码复制到项目本地模块中,自行修复资源问题后再依赖本地模块,规避远程依赖的问题版本。
- 临时兼容方案(不推荐长期使用):
- 在app模块的build.gradle中添加配置,强制使用旧版资源编译器:
android { aaptOptions { useNewApkCreator false } } - 临时降级Gradle版本到接近2019年的稳定版本(如Gradle 5.x + Android Gradle Plugin 3.x),但会影响后续新特性支持。
- 在app模块的build.gradle中添加配置,强制使用旧版资源编译器:
内容的提问来源于stack exchange,提问作者ubik41
相关产品推荐
相关产品推荐

