Loading

flutter run 安卓的时候下载gradle不走代理

原因一句话:
flutter run 触发的是 Gradle Wrapper(那个小 gradlew.bat),它只认 gradle.properties 里的 JVM 系统属性,根本不看 Windows 的 HTTP(S)_PROXY 环境变量,所以“不走代理”是预期行为。

按下面 3 步让它走代理即可(亲测有效,无需全局 VPN):


  1. Gradle 单独写代理(socks 也行)

打开 android/gradle.properties(没有就新建),把下面 4 行粘进去,端口改成你本地代理的:

systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=7897
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=7897
# 如果代理是 SOCKS5,用下面两句代替上面四句
# systemProp.socksProxyHost=127.0.0.1
# systemProp.socksProxyPort=7890

保存后 第一次 会在当前项目生效;想全局生效,把同样内容放到
C:\Users\<你>\.gradle\gradle.properties 即可 。


  1. 清掉之前下载失败的残缺包

PowerShell 里执行:

Remove-Item -Recurse -Force "$env:USERPROFILE\.gradle\wrapper\dists"

这样下次 Wrapper 会重新拉完整的 zip。


  1. 重新构建

flutter clean
flutter run

看到控制台出现 Downloading https://services.gradle.org/distributions/gradle-8.3-bin.zip 并且进度条正常走,说明已经通过代理下载了。


附:如果代理需要账号密码,再补 4 行

systemProp.http.proxyUser=你的用户名
systemProp.http.proxyPassword=你的密码
systemProp.https.proxyUser=你的用户名
systemProp.https.proxyPassword=你的密码

一句话总结:
Gradle 不看 Windows 环境变量,只在 gradle.properties 里读 systemProp.*;把代理写进去再删缓存,flutter run 就能走代理下 gradle 了。

posted @ 2026-01-10 01:07  老卫同学  阅读(3)  评论(0)    收藏  举报