Android Studio 4.0.2构建报405错误拉取aapt2依赖失败求助
aapt2资源405下载报错修复方案
问题根因
- 拉取
https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/4.0.2-6197926/aapt2-4.0.2-6197926-osx.jar返回405状态码,核心触发原因有两个:- 项目build.gradle配置中重复添加了指向Google Maven仓库的条目,Gradle对同一资源发起多次重复GET请求,被服务端拦截返回405
- 本地Gradle缓存残留了之前拉取失败生成的锁文件,反复开关离线模式时会持续读取这些无效缓存,无法完成正常资源拉取
修复操作步骤
1. 修正项目级build.gradle仓库配置
删除原有配置中重复的Google Maven地址条目,避免重复请求:
- 调整后build.gradle的仓库配置参考:
// 项目根目录build.gradle内的buildscript块配置 buildscript { repositories { maven { url 'https://mirrors.cloud.tencent.com/Google/' } maven { url 'https://mirrors.cloud.tencent.com/nexus/repository/maven-public/' } google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.0.2' } } // 项目根目录build.gradle内的allprojects块配置 allprojects { repositories { maven { url 'https://mirrors.cloud.tencent.com/Google/' } maven { url 'https://mirrors.cloud.tencent.com/nexus/repository/maven-public/' } mavenLocal() google() mavenCentral() } }
注意:原配置中单独添加的https://maven.google.com/条目要全部删除,该地址和Gradle内置google()方法指向的仓库完全重合,保留后会直接触发服务端的重复请求拦截。
2. 手动清理本地无效缓存
不依赖IDE自带的清缓存功能,直接删除故障资源的残留记录:
- 打开本地Gradle缓存路径:
~/.gradle/caches/modules-2/files-2.1/com.android.tools.build/aapt2/4.0.2-6197926/ - 删除该路径下所有关联osx.jar的文件、
.lock后缀的锁文件 - 删除项目根目录下
.gradle文件夹的全部内容
3. 调整离线模式操作逻辑
之前反复开关离线模式未生效,是操作时机错误:
- 先将Gradle设置为在线模式,完成上述配置调整、缓存清理操作
- 重新触发项目同步,等待aapt2资源正常拉取完成
- 确认所有依赖拉取成功后,再根据需求开启Gradle离线模式;禁止在资源拉取失败状态下直接开启离线模式同步,会直接读取本地不完整的缓存触发报错。
4. 兜底处理方案
如果调整后仍然触发405报错,先检查本地代理、防火墙规则是否拦截了向dl.google.com发起的GET请求;网络链路正常的情况下,可手动获取对应版本的aapt2 jar包,放入本地缓存的对应目录下,跳过Gradle自动拉取环节。
内容的提问来源于stack exchange,提问作者Sassy
相关产品推荐
相关产品推荐

