本文由 gwozai 整理。Android Studio 新建项目报 Could not install Gradle distributionUnknownHostException: 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\

里面有一个一串乱码的文件夹(哈希),点进去。

没有 distsgradle-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.78.98.11.1 等。再做一遍,只换版本号:

  1. 看新的 gradle-wrapper.properties 里是哪个 gradle-X.Y-bin.zip
  2. 浏览器下载对应版本:https://mirrors.cloud.tencent.com/gradle/gradle-X.Y-bin.zip
  3. Sync 一次,打开:C:\Users\21850\.gradle\wrapper\dists\gradle-X.Y-bin\<乱码>\
  4. 把新 zip 拷进去,再 Sync

8.6 的缓存还在,旧项目不受影响。

换另一台 Windows

  1. 把已经下好的 gradle-8.6-bin.zip 拷到新电脑
  2. 在新电脑建一个项目并 Sync 一次(会报错)
  3. 打开新电脑的:C:\Users\新用户名\.gradle\wrapper\dists\gradle-8.6-bin\<乱码>\
  4. 把 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