Android项目编译报Resource compilation failed错误,常规修复无效求解决方案
Android 资源编译 mergeDebugResources 报错排查方案
报错详情
Execution failed for task ':app:mergeDebugResources'. > A failure occurred while executing com.android.build.gradle.internal.res.ResourceCompilerRunnable > Resource compilation failed. Check logs for details.
排查步骤
- 第一步:输出详细错误日志定位问题
项目根目录下打开终端执行命令输出完整编译栈信息:- Mac/Linux 执行:
./gradlew assembleDebug --stacktrace - Windows 执行:
gradlew.bat assembleDebug --stacktrace
输出的日志中会明确标注出错的资源文件路径、行号以及错误类型,常见错误包括:
- 资源文件格式与后缀不匹配,比如将png文件重命名为webp使用
- XML格式的资源存在标签未闭合、属性值缺少引号等语法错误
- strings.xml中存在未转义的特殊字符(&、<、>、非闭合的双引号等)
- 资源文件名包含大写字母、空格、中文或者特殊符号
- 9-patch图片的拉伸区域标记不规范,存在断点或者多余像素
- Mac/Linux 执行:
- 第二步:排查版本兼容性问题
检查项目根目录build.gradle和app模块build.gradle配置:- 确认compileSdkVersion、buildToolsVersion、Android Gradle Plugin版本三者兼容,比如AGP 7.0及以上版本要求compileSdkVersion ≥ 30,buildToolsVersion ≥ 30.0.2
- 回滚最近新增的第三方依赖、资源文件修改,验证是否是新增内容引入的问题
- 第三步:清理全量构建缓存
常规clean、无效缓存操作无效的情况下,手动删除以下目录后重新编译:- 项目根目录下的
build文件夹 - app模块下的
build文件夹 - 全局Gradle缓存目录(默认路径为用户主目录下的
.gradle/caches)中对应AGP版本的缓存文件
- 项目根目录下的
内容的提问来源于stack exchange,提问作者Ehsan Pagheh
相关产品推荐
相关产品推荐

