You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

构建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,点击顶部菜单栏的FileSettings(Windows/Linux),或者Android StudioSettings(Mac)
  • 在设置面板中找到Build, Execution, DeploymentBuild ToolsGradle
  • 取消勾选Offline work选项,点击Apply后再点OK
  • 点击工具栏上的「Sync Project with Gradle Files」按钮(大象图标旁的刷新按钮),或者直接执行BuildRebuild 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
  • 把该目录下的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

火山引擎 最新活动