使用本地Gradle构建项目仍遇连接超时问题求助
解决Android Studio构建svgomg-twa时无法获取AGP 5.5.1的问题
先给你理清核心矛盾:你用的本地Gradle 5.5.1是Gradle构建工具本身,但报错里的com.android.tools.build:gradle:5.5.1是Android Gradle插件(AGP)——这俩是完全不同的东西。AGP默认会从Google Maven仓库拉取,你的防火墙环境阻断了这个请求,就算加了mavenLocal(),如果配置不到位或者本地仓库没对应文件,还是会报错。
下面是一步步的解决办法:
1. 确保本地Maven仓库有AGP 5.5.1的完整文件
首先得把AGP 5.5.1的所有相关文件放到本地Maven仓库里:
- 本地Maven仓库默认路径:Windows是
C:\Users\<你的用户名>\.m2\repository,Mac/Linux是~/.m2/repository - 在这个路径下创建文件夹结构:
com/android/tools/build/gradle/5.5.1 - 把AGP 5.5.1的
gradle-5.5.1.pom、gradle-5.5.1.jar,还有对应的校验文件(比如.sha1、.md5,如果有的话)都放进去。你可以在能联网的环境下载这些文件,再复制到这个路径里。
2. 调整仓库配置,让Gradle优先用本地仓库
AGP是构建脚本的依赖,它的仓库配置在两个关键位置,都得修改:
修改项目根目录的build.gradle
把mavenLocal()放到buildscript和allprojects的repositories块最前面,甚至可以暂时注释掉远程仓库(避免Gradle优先去远程请求):
buildscript { repositories { mavenLocal() // 必须放在最前面,优先从本地找 // google() 防火墙下建议注释 // mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:5.5.1' } } allprojects { repositories { mavenLocal() // google() // mavenCentral() } }
修改settings.gradle(很多人会漏这一步!)
如果项目里有pluginManagement块,同样把mavenLocal()放到最前面:
pluginManagement { repositories { mavenLocal() // gradlePluginPortal() // google() // mavenCentral() } }
3. 排查到底是谁在请求远程资源
如果还是报错,可以用Gradle的日志命令定位根源:
- 在终端运行(Windows用
gradlew.bat):
./gradlew dependencies --info
这个命令会输出详细的依赖解析日志,你搜索https://dl.google.com/dl/android/maven2,就能看到是哪个模块、哪个插件在触发这个远程请求,针对性调整配置即可。
4. 开启Gradle离线模式(终极保险)
在Android Studio里开启离线模式,彻底禁止Gradle去远程仓库请求:
- 打开
File -> Settings -> Build, Execution, Deployment -> Gradle - 勾选
Offline work,点击OK - 重新同步项目,Gradle只会用本地已有的依赖和插件。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

