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

项目迁移后编译报错排查:mergeDebugResources失败及编译错误解决

解决Android项目迁移后mergeDebugResources返回-1的编译错误

我之前也碰到过类似的项目迁移后资源合并失败的问题,返回-1这个错误提示确实比较模糊,但基本都和资源文件、构建配置或者缓存有关,给你几个具体的排查和修复方向:

1. 先做基础的缓存清理与重新构建

迁移过程中很容易出现缓存损坏或者残留的旧构建文件干扰,先执行以下操作:

  • 直接删除项目根目录下的build文件夹,以及app模块下的build文件夹
  • 用命令行执行清理+构建:./gradlew clean assembleDebug(Windows系统用gradlew clean assembleDebug)

2. 检查资源文件的完整性与合法性

这是最常见的原因,迁移时可能出现资源丢失、损坏或者格式错误:

  • 检查所有res目录下的文件:比如drawable里的图片是否能正常打开,xml资源(布局、values文件等)有没有语法错误(比如标签未闭合、特殊字符未转义)
  • 排查是否存在重复的资源名:比如不同分辨率的drawable目录下有同名图片,或者values目录下有同名的string/color定义
  • 检查是否有特殊格式的资源:比如WebP格式图片,部分旧版本AGP对其支持有问题,可暂时替换为PNG格式测试

3. 验证Gradle与AGP版本兼容性

迁移项目后可能出现Gradle版本和Android Gradle Plugin(AGP)版本不匹配的情况,这会导致资源合并逻辑异常:

  • 打开项目根目录的build.gradle文件,确认com.android.tools.build:gradle的版本
  • 打开gradle/wrapper/gradle-wrapper.properties文件,确认distributionUrl对应的Gradle版本
  • 调整到官方推荐的兼容版本组合(比如AGP 7.4对应Gradle 7.5左右)

4. 检查资源目录配置是否正确

如果项目自定义了资源目录,迁移后可能出现配置错误:

  • 打开app模块的build.gradle,检查sourceSets中的资源路径配置,确保没有写错或者遗漏目录

5. 清理Gradle全局缓存

如果本地Gradle缓存损坏,也会导致这类奇怪的构建错误:

  • 执行命令清理构建缓存:./gradlew cleanBuildCache
  • 可以尝试删除用户目录下的.gradle文件夹(比如Windows的C:\Users\你的用户名\.gradle,Mac的~/.gradle),然后重新构建让Gradle重新下载依赖和缓存

最后:获取详细错误信息

如果以上方法都没解决,执行以下命令获取完整的栈跟踪,能定位到具体出问题的资源或配置:

./gradlew assembleDebug --stacktrace

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 16:53:10