flutter pub get 卡住了

Posted

技术标签:

【中文标题】flutter pub get 卡住了【英文标题】:flutter pub get is stucking 【发布时间】:2020-05-24 22:32:54 【问题描述】:

当我在终端运行时 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.                              

【问题讨论】:

当您删除启动审查包时,您的 pubspec.yaml 是否以退出代码 0 结尾 不,我刚刚终止了我的命令 【参考方案1】:

解释前的快速修复:

重启你的路由器!多次为我工作。 确保您的网络没有使用代理 确保您可以 pingpub.dev 而不会丢失任何数据包 尝试关闭所有 dart.exe 进程,然后重新尝试执行 flutter pub get 尝试从您的 pubspec.yaml 中删除现有包,然后重新获取它以查看它是否有效 尝试manually add the package到你的项目

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

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

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

    打开您的任务管理器并查找最新的 dart.exe 任务(它应该在您 flutter pub get 的那一刻被调用。此任务是正在下载的包。如果您看到进程大小永远不会超过一定大小,get命令仍然卡住,它只表示网络问题,包可能永远不会成功下载。例如,我尝试获取carousela_flutter 1.4.1包的结果是进程停止大小约为 60mb,如下所示:

如果你等待的时间比较长(我会说 10 分钟就够了),连接问题仍然没有解决,你会看到来自 Flutter 的以下消息: “进程以退出代码 0 结束”。

我建议你再试一次或maually add the package。

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

【讨论】:

我只是想让人们知道路由器重启是必须尝试的。按预期工作就像一个魅力【参考方案2】:

在我的情况下,我的 ISP 的主机被阻止,因此它无法获取包,并且显示 pub get failed (server不可用) -- 尝试在 1 秒内重试 1...

于是我打开我的 *** 并再次尝试,这次成功了

【讨论】:

【参考方案3】:

这是一个powershell代码,大家可以在终端上在VSCode和android Studio上运行,回车即可轻松解决问题!

在 powershell 中,执行:

setx PUB_HOSTED_URL "https://pub.flutter-io.cn"
setx FLUTTER_STORAGE_BASE_URL "https://storage.flutter-io.cn"

【讨论】:

【参考方案4】:

502 Bad Gateway 试图在 https://pub.dartlang.org 找到包 package_name。 如果您单击该链接,您会发现该网站已关闭。这同样适用于https://pub.dev/。

【讨论】:

【参考方案5】:

如前所述,这可能与您的网络有关.... 断开并重新连接固定矿井。

【讨论】:

【参考方案6】:

确保没有防火墙阻止它。

也检查互联网连接。搜索你的浏览器,不要依赖windows wifi符号。

对我来说,KIS (Kaspersky) 阻止了 pub.bat。 如果是这种情况,请同时检查——Flutter、dart、android studio、Gradlew.bat、sdkmanager.bat、adb.exe、qemu-systems、emulator-check 和 google 是否有任何阻塞。 (只需在防火墙设置中搜索)。

【讨论】:

【参考方案7】:

就我而言,是我的病毒程序(AVG AntiVirus' Web Shield)突然导致 pub get 失败。

【讨论】:

【参考方案8】:

我已经在我的 Windows 机器上解决了。

在许多讨论的答案中多次尝试之后,我尝试了很多东西,例如:

重启机器

删除缓存文件夹(dart-sdk下载可能会重启)

在环境变量路径中添加 dart-sdk

X:\Dev\Flutter\bin\cache\dart-sdk\

在 Path 变量中添加 dart-sdk 的 bin 文件夹(用于环境变量和用户变量)(我知道这是绝望的操作)

X:\Dev\Flutter\bin\cache\dart-sdk\bin

还是没用。

但是...我在 this thread 上发现了一些关于代理问题的信息。

然后我决定在我的 Windows 机器上试用它,它(终于)奏效了。

尝试在 Power Shell 上输入:

$Env:https_proxy="your.proxy.here:8080"

然后再试flutter doctor

【讨论】:

以上是关于flutter pub get 卡住了的主要内容,如果未能解决你的问题,请参考以下文章

Flutter环境搭建

Flutter:'package get'尚未运行; 'Pub get' 尚未运行

Flutter 用户应该运行 `flutter packages get` 而不是 `pub get`

Flutter - GraphQL 支持

MAC安装flutter开发环境

在 myapp 中运行“flutter pub get”...(这需要很长时间。)