本文由 gwozai 整理。Android Studio 新建项目报 Could not install Gradle distribution、UnknownHostException: services.gradle.org 时,官方地址下不下来,就从国内镜像把同一个 zip 下好,放进 Gradle 缓存。之后所有项目只要版本相同,都会直接用这份文件。
下面路径以用户名 21850、Gradle 8.6 为例。换电脑或换版本时,只改用户名和版本号。
适用报错
Could not install Gradle distribution from 'https://services.gradle.org/...'
UnknownHostException: services.gradle.org
每次操作(约 5 分钟)
1. 确认版本
打开项目里的 gradle/wrapper/gradle-wrapper.properties,看这一行:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
后面是 gradle-8.6-bin.zip,版本就是 8.6。不要改这一行。
2. 用浏览器下载 zip
打开(不要走 services.gradle.org):
https://mirrors.cloud.tencent.com/gradle/gradle-8.6-bin.zip
备用:
https://mirrors.huaweicloud.com/gradle/gradle-8.6-bin.zip
下完不要解压。文件名必须是 gradle-8.6-bin.zip。
3. 先 Sync 一次,生成缓存目录
Android Studio:File → Sync Project with Gradle Files
报错没关系,目的是生成文件夹。然后用资源管理器打开:
C:\Users\21850\.gradle\wrapper\dists\gradle-8.6-bin\
里面有一个一串乱码的文件夹(哈希),点进去。
没有 dists 或 gradle-8.6-bin:说明还没 Sync 过,回到 Studio 再 Sync 一次。
4. 把 zip 拷进去
把下载的 gradle-8.6-bin.zip 复制到那个乱码文件夹里。
同目录里如果有这些,删掉:
*.lck*.part- 大小为 0 KB 的残缺 zip
不要解压,不要改名。
正确结果:
C:\Users\21850\.gradle\wrapper\dists\gradle-8.6-bin\<一串乱码>\
gradle-8.6-bin.zip
5. 再 Sync
回到 Android Studio,再点一次 Sync Project with Gradle Files。
成功:不再报 UnknownHostException: services.gradle.org,开始解析依赖。
以后新建项目
只要还是 Gradle 8.6,且 distributionUrl 仍是官方的:
https://services.gradle.org/distributions/gradle-8.6-bin.zip
不用再拷 zip,直接 Sync 即可。
版本变了怎么办
Android Studio 升级后,新项目可能变成 8.7、8.9、8.11.1 等。再做一遍,只换版本号:
- 看新的
gradle-wrapper.properties里是哪个gradle-X.Y-bin.zip - 浏览器下载对应版本:
https://mirrors.cloud.tencent.com/gradle/gradle-X.Y-bin.zip - Sync 一次,打开:
C:\Users\21850\.gradle\wrapper\dists\gradle-X.Y-bin\<乱码>\ - 把新 zip 拷进去,再 Sync
8.6 的缓存还在,旧项目不受影响。
换另一台 Windows
- 把已经下好的
gradle-8.6-bin.zip拷到新电脑 - 在新电脑建一个项目并 Sync 一次(会报错)
- 打开新电脑的:
C:\Users\新用户名\.gradle\wrapper\dists\gradle-8.6-bin\<乱码>\ - 把 zip 拷进去,再 Sync
不要直接复制整份 .gradle 文件夹(很大,哈希目录也可能对不上)。
依赖还报错时
Gradle 本体通了之后,google() / mavenCentral() 仍可能超时。再加仓库镜像:
文件:C:\Users\21850\.gradle\init.d\mirror.gradle
(没有 init.d 就新建这个文件夹)
beforeSettings { settings ->
settings.pluginManagement.repositories {
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven { url 'https://maven.aliyun.com/repository/public' }
}
settings.dependencyResolutionManagement.repositories {
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/public' }
}
}
用记事本保存,类型选「所有文件」,不要存成 .gradle.txt。保存后重启 Android Studio,再 Sync。
常见问题
| 现象 | 处理 |
|---|---|
| 找不到乱码文件夹 | 先 Sync 一次;路径是用户目录 .gradle,不是项目里的 gradle |
| 拷进去还报 UnknownHost | zip 不在乱码文件夹里,或文件名不是 gradle-8.6-bin.zip |
| checksum / 校验失败 | 重新下载 zip;删掉乱码文件夹里的残缺文件后再拷 |
| 新项目又报同样错 | 版本变了,按「版本变了怎么办」再放一份 |
最短清单
- 看
gradle-wrapper.properties版本(例如 8.6) - 浏览器下
gradle-8.6-bin.zip(腾讯云或华为云) - Sync 一次,打开
C:\Users\21850\.gradle\wrapper\dists\gradle-8.6-bin\<乱码>\ - 把 zip 拷进去,删掉
.lck/.part - 再 Sync