运行Flutter应用时出现Gradle网络连接错误问题
解决Gradle网络连接失败导致的Flutter构建错误
错误信息(中文翻译)
at java.base/sun.nio.ch.Net.connect0(本地方法) at java.base/sun.nio.ch.Net.connect(Net.java:579) at java.base/sun.nio.ch.Net.connect(Net.java:568) at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588) at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) at java.base/java.net.Socket.connect(Socket.java:633) at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304) at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:174) at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:183) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:531) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:636) at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:266) at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:380) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1242) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179) at java.base/sun.net.www.protocol.http.HttpURLConnection.followRedirect0(HttpURLConnection.java:2902) at java.base/sun.net.www.protocol.http.HttpURLConnection.followRedirect(HttpURLConnection.java:2811) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1927) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589) at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224) at org.gradle.wrapper.Download.downloadInternal(Download.java:58) at org.gradle.wrapper.Download.download(Download.java:44) at org.gradle.wrapper.Install$1.call(Install.java:61) at org.gradle.wrapper.Install$1.call(Install.java:48) at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65) at org.gradle.wrapper.Install.createDist(Install.java:48) at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61) 异常: Gradle任务assembleDebug执行失败,退出码1 已退出 (sigterm)
核心原因
Gradle Wrapper在尝试下载Gradle分发包时,网络连接受阻,无法建立有效的HTTPS连接完成下载,最终导致构建任务失败。
解决方法
1. 检查网络连通性
- 确认当前网络可正常访问外网,测试Gradle官方下载地址的连通性
- 若使用代理,确保代理主机、端口、认证信息配置正确
2. 配置Gradle国内镜像
修改项目根目录gradle/wrapper/gradle-wrapper.properties文件中的distributionUrl为国内镜像地址,例如阿里云镜像:
distributionUrl=https://mirrors.aliyun.com/maven/gradle/distributions/gradle-<你的版本号>-all.zip
替换<你的版本号>为项目原本指定的Gradle版本(如7.4)
3. 手动下载Gradle分发包
- 从官方或镜像站点下载对应版本的Gradle压缩包
- 解压到本地目录
~/.gradle/wrapper/dists/gradle-<版本号>-all/<随机字符串>(目录不存在则创建) - 重新执行Flutter构建命令
4. 清理Gradle缓存
执行以下命令清理缓存后重新构建:
flutter clean rm -rf ~/.gradle/caches flutter pub get flutter run
5. 配置Gradle代理(若需要)
在项目根目录创建gradle.properties文件,添加代理配置:
systemProp.http.proxyHost=你的代理主机 systemProp.http.proxyPort=你的代理端口 systemProp.https.proxyHost=你的代理主机 systemProp.https.proxyPort=你的代理端口
内容的提问来源于stack exchange,提问作者Harsh Shrivastava
相关产品推荐
相关产品推荐

