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

开启VPN代理可访问境外网络但Gradle编译失败,Android Studio无法下载Gradle资源问题咨询

Gradle编译失败(VPN生效但仍报错)的原因与解决办法

作为经常帮开发者排查Gradle问题的人,这两个场景我碰到过太多次了,给你梳理一下核心原因和可行的解决步骤:

一、VPN能访问境外网络但Gradle编译失败的常见原因

  • Gradle没走VPN代理:浏览器的全局代理和Gradle的网络请求是分开的,Gradle默认不会自动继承系统代理,哪怕你能翻墙浏览网页,Gradle可能还是直接走本地网络请求资源。
  • 本地缓存损坏:之前下载失败留下的损坏缓存文件会拖后腿,哪怕现在网络通了,Gradle优先读缓存,自然会报错。
  • 镜像源冲突:如果之前配置过国内Gradle镜像,这些源可能没同步你需要的资源版本,或者和境外仓库的路径不兼容,导致下载失败。
  • 代理协议不兼容:有些VPN用的WireGuard、Trojan这类协议,Gradle的网络模块可能不支持这类协议的转发,导致请求发不出去。
  • 特定资源被限制:哪怕能访问普通境外网站,Google Maven、JCenter的部分节点可能被VPN路由策略排除,或者本身有访问限制,导致资源超时。

二、全局代理仅对网页生效,Android Studio/Gradle无法走代理的解决步骤

1. 给Android Studio单独配置代理

打开AS,依次点 File > Settings > Appearance & Behavior > System Settings > HTTP Proxy

  • 选「Manual proxy configuration」
  • 填入你的VPN代理地址(一般是127.0.0.1)和对应的端口号(比如10807890,看你VPN客户端的设置)
  • 点击「Apply」「OK」后重启AS,试试编译。

2. 配置Gradle全局代理(所有项目通用)

找到用户目录下的.gradle文件夹(Windows是C:\Users\[你的用户名]\.gradle,Mac是~/.gradle),新建或编辑gradle.properties文件,添加以下内容:

systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=你的VPN端口号
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=你的VPN端口号
# 若VPN需要账号密码,追加下面的内容
# systemProp.http.proxyUser=你的代理用户名
# systemProp.http.proxyPassword=你的代理密码
# systemProp.https.proxyUser=你的代理用户名
# systemProp.https.proxyPassword=你的代理密码

保存后重启AS,重新执行编译任务。

3. 检查VPN的代理例外列表

有些VPN会把AS或者java.exe(Gradle基于Java运行)加入代理排除名单,打开VPN客户端的设置,看看有没有这两个程序,有的话把它们移除出例外列表。

4. 验证Gradle是否真的走了代理

在AS的Terminal里执行这条命令,看输出里有没有你配置的代理信息:

./gradlew dependencies --debug | grep "Proxy"

如果能看到代理地址,说明配置生效了;没看到的话,再检查端口、地址有没有填错。

5. 清理缓存后重试

缓存是很多问题的根源,执行以下命令清理并重新下载依赖:

  • Windows:gradlew clean build --refresh-dependencies
  • Mac/Linux:./gradlew clean build --refresh-dependencies
    等清理完成后再重新编译。

内容的提问来源于stack exchange,提问作者胖头鱼

火山引擎 最新活动