flutter run 安卓的时候下载gradle不走代理
原因一句话:
flutter run 触发的是 Gradle Wrapper(那个小 gradlew.bat),它只认 gradle.properties 里的 JVM 系统属性,根本不看 Windows 的 HTTP(S)_PROXY 环境变量,所以“不走代理”是预期行为。
按下面 3 步让它走代理即可(亲测有效,无需全局 VPN):
- 给 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 即可 。
- 清掉之前下载失败的残缺包
PowerShell 里执行:
Remove-Item -Recurse -Force "$env:USERPROFILE\.gradle\wrapper\dists"
这样下次 Wrapper 会重新拉完整的 zip。
- 重新构建
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 了。

浙公网安备 33010602011771号