构建RecyclerView项目时遇mergeDebugResources错误,求解决方案
解决
Execution failed for task ':app:mergeDebugResources'(aapt2离线缓存缺失)的问题 这个错误的核心原因很明确:你的Android Studio处于离线模式,但本地Gradle缓存里没有com.android.tools.build:aapt2:3.6.2-6040484这个资源编译工具,导致构建时无法处理你添加到drawable目录的图片资源。下面是几种针对性的解决办法:
方法1:关闭离线模式让Gradle自动下载依赖
这是最直接的解决方案,步骤如下:
- 打开Android Studio,点击顶部菜单栏的
File→Settings(Windows/Linux),或者Android Studio→Settings(Mac) - 在设置面板中找到
Build, Execution, Deployment→Build Tools→Gradle - 取消勾选
Offline work选项,点击Apply后再点OK - 点击工具栏上的「Sync Project with Gradle Files」按钮(大象图标旁的刷新按钮),或者直接执行
Build→Rebuild Project,Gradle会自动下载缺失的aapt2依赖,完成后构建就能正常进行了
方法2:手动复制aapt2缓存(适用于必须离线工作的场景)
如果你的开发环境确实无法联网,可以先在有网络的环境下提前缓存好依赖,再复制到离线机器上:
- 在联网电脑上打开Android Studio,关闭离线模式,同步你的项目,让Gradle下载好
aapt2:3.6.2-6040484 - 找到Gradle的缓存目录:
- Windows:
C:\Users\<你的用户名>\.gradle\caches\modules-2\files-2.1\com.android.tools.build\aapt2 - Mac/Linux:
~/.gradle/caches/modules-2/files-2.1/com.android.tools.build/aapt2
- Windows:
- 把该目录下的
3.6.2-6040484文件夹复制到你离线电脑的对应缓存目录中 - 回到离线电脑的Android Studio,开启离线模式,重新构建项目即可
方法3:检查Gradle仓库配置(避免后续类似问题)
确保你的项目根目录下的build.gradle文件中配置了Google Maven仓库,因为aapt2依赖是从这里获取的:
buildscript { repositories { google() // 这个仓库必须存在 mavenCentral() // 替代jcenter的主流仓库 } // ...其他buildscript配置 } allprojects { repositories { google() mavenCentral() } }
如果之前没添加google()仓库,补上后同步项目,再按方法1的步骤操作即可。
内容的提问来源于stack exchange,提问作者ihya ainun Fikri




