flutter pub get 卡住了

Yun*_*nus 6 android flutter flutter-dependencies flutter-packages

当我在终端中运行时flutter pub get卡住了它显示

操作系统 MacOS Catalina 10.15.3

Got TLS error trying to find package launch_review at https://pub.dartlang.org.                                    
pub get failed (server unavailable) -- attempting retry 1 in 1 second...                                           
Got socket error trying to find package launch_review at https://pub.dartlang.org.                                 
pub get failed (server unavailable) -- attempting retry 2 in 2 seconds...                                          
Got TLS error trying to find package launch_review at https://pub.dartlang.org.                                    
pub get failed (server unavailable) -- attempting retry 3 in 4 seconds...                                          
Got socket error trying to find package launch_review at https://pub.dartlang.org.                                 
pub get failed (server unavailable) -- attempting retry 4 in 8 seconds...                                          
Got socket error trying to find package launch_review at https://pub.dartlang.org.                              
Run Code Online (Sandbox Code Playgroud)

Mag*_*mus 5

解释前的快速修复:

  • 重启路由器!为我工作好几次。
  • 确保您的网络不在代理后面
  • 确保您可以pingpub.dev而不会丢失任何数据包
  • 在重新执行flutter pub get之前尝试关闭所有 dart.exe 进程
  • 尝试从pubspec.yaml 中删除现有包并重新获取它以查看它是否有效
  • 尝试手动将包添加到您的项目中

所以,我有(有时仍然有)同样的问题。我对其进行了分析并得出结论,包下载管理器和托管这些包的服务器根本不可靠。非常小的包可能只是通过“flutter pub get”成功导入,而大的包可能会永远下载。这绝对是一个网络问题,无论是你的还是他们的。

只是为了验证我们确实遇到了同样的问题:

  1. 打开你的 cmd(不管是什么操作系统)并运行:ping -t pub.dev 。现在,如果你看到来自服务器的那些不一致的回复,这意味着网络有问题(你的或他们的)。这看起来像这样:

    在此处输入图片说明

  2. 打开你的任务管理器,寻找最新的 dart.exe 任务(它应该在你flutter pub get的那一刻被调用。这个任务是正在下载的包。如果你看到进程大小从未超过某个大小,并且get 命令仍然卡住,它仅表示网络问题,并且该包可能永远无法成功下载。例如,我尝试获取 carousela_flutter 1.4.1 包的最终进程大小约为 60mb,如下所示:

在此处输入图片说明

如果您等待的时间相对较长(我认为 10 分钟就足够了)并且连接问题仍未解决,您将看到以下来自 flutter 的消息:“进程已完成,退出代码为 0 ”。

我建议你再试一次或手动添加包

ps:并不是所有的包都会发生这种情况,从我的调查来看,这似乎与它的大小有关。例如,我设法获得了 carousela_flutter 0.7.0 包,但 1.4.1 失败了。