Flutter运行报错java.net.SocketException:Unexpected end of file from server原因排查
报错原因及解决方案
报错原因分析
从报错栈可以明确,问题出在Gradle Wrapper下载Gradle分发包的过程中,java.net.SocketException: Unexpected end of file from server 表示下载连接被意外中断,导致获取的文件不完整,常见触发原因包括:
- 网络访问受限/不稳定:默认Gradle分发服务器在海外,国内网络访问时易出现连接中断、下载超时
- Gradle缓存损坏:本地
~/.gradle/caches目录中缓存的Gradle文件已损坏,读取时触发异常 - 代理配置冲突:系统或IDE的代理设置与Gradle的代理配置不匹配,导致请求无法正常完成
- 分发包地址异常:
gradle-wrapper.properties中的distributionUrl地址无效、版本不兼容
针对性解决步骤
你已完成Android Studio、Flutter、Gradle版本更新,可尝试以下补充方案:
清理Gradle缓存
删除本地Gradle缓存目录:- Windows路径:
C:\Users\<你的用户名>\.gradle\caches - Mac/Linux路径:
~/.gradle/caches
删除后重新运行项目。
- Windows路径:
配置Gradle国内镜像
在项目根目录的build.gradle文件中,替换默认仓库为国内镜像:buildscript { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/nexus/content/groups/public' } } } allprojects { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/nexus/content/groups/public' } } }手动下载Gradle分发包
- 前往Gradle官网下载对应版本的zip包
- 将zip包放到本地固定目录,比如
C:\Gradle\gradle-x.x.x-all.zip(Windows)或~/Gradle/gradle-x.x.x-all.zip(Mac/Linux) - 修改项目中
android/gradle/wrapper/gradle-wrapper.properties的distributionUrl为本地路径:distributionUrl=file:///C:/Gradle/gradle-x.x.x-all.zip
检查代理设置
- 关闭系统代理或IDE中的代理配置,排除冲突
- 若需使用代理,在
gradle.properties中添加正确配置:systemProp.http.proxyHost=你的代理地址 systemProp.http.proxyPort=代理端口 systemProp.https.proxyHost=你的代理地址 systemProp.https.proxyPort=代理端口
内容的提问来源于stack exchange,提问作者Ojo Temitope
相关产品推荐
相关产品推荐

