(只想看结论可跳到结尾)
自己是个Android程序员,今天正好打算尝试一下Flutter。
按官方文档说的,下载了SDK,为Android Studio安装了插件,运行flutter doctor也没有问题。
结果项目创建好(默认代码),第一次执行,就报错Exception in thread "main" java.net.SocketException: Unexpected end of file from server
折腾了整整三个小时,这里为大家排除几个可能性:
- 换模拟器不行(亲测)
- 重启电脑、关闭防火墙不行(亲测)
- 用flutter create ** 命令行方式创建项目不行(亲测)
- 创建项目时取消androidx.**、kotlin、swift等选项也不行(亲测)Orz
为了寻找原因,我首先在Settings->Language&Frameworks->Flutter里开启了Enable verbose logging
这次打印出了触发这个报错的命令:gradlew.bat -q -Ptarget=D:\FlutterWorkspace\app3\lib\main.dart -Ptrack-widget-creation=true -Pfilesystem-scheme=org-dartlang-root -Ptarget-platform=android-arm64 assembleDebug
为了打印更详细的日志,把上面的命令去掉-q
后手动执行
至此终于发现问题所在:gradle-5.6.2-all.zip下载失败
解决方案:
- 换个网
- VPN
- 手动下载Gradle:比如可以参考https://blog.csdn.net/chrisyuu/article/details/52711025
当然,我最后发现,我这个问题的原因是因为在我的C:/Users/<username>/.gradle/gradle.properties(不是项目下的gradle.properities)中有几行多余的代理设置,删掉就好了……如果有人遇到相同的问题也可以查看一下这个文件~
网友评论