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】:解释前的快速修复:
重启你的路由器!多次为我工作。 确保您的网络没有使用代理 确保您可以 ping 到 pub.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:'package get'尚未运行; 'Pub get' 尚未运行