我正在尝试在Mac上安装Flutter,但出现错误,“错误状态:未来已完成”。以下是“ flutter doctor -v”的输出,我对如何解决此问题有什么想法?
MacBook-Pro:~$ flutter doctor -v
[✓] Flutter (Channel stable, v1.0.0, on Mac OS X 10.14.1 18B75, locale en-CN)
• Flutter version 1.0.0 at /Users/tortilla/dev/programs/flutter
• Framework revision 5391447fae (3 weeks ago), 2018-11-29 19:41:26 -0800
• Engine revision 7375a0f414
• Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)
⣾Unhandled exception:
Bad state: Future already completed
#0 _AsyncCompleter.complete (dart:async/future_impl.dart:39:31)
#1 _NativeSocket.startConnect.<anonymous closure>.connectNext.<anonymous closure> (dart:io/runtime/binsocket_patch.dart:490:23)
#2 _NativeSocket.issueWriteEvent.issue (dart:io/runtime/binsocket_patch.dart:844:14)
#3 _NativeSocket.issueWriteEvent (dart:io/runtime/binsocket_patch.dart:851:12)
#4 _NativeSocket.multiplex (dart:io/runtime/binsocket_patch.dart:872:11)
#5 _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)
答案 0 :(得分:1)
如本Flutter issue中所述,您可以运行let obj = {key1: 'value1', key2: 'value2'};
let keys = Object.keys(obj);
let values = Object.values(obj)
console.log(keys, values)
let newObj = {};
for( let i = 0; i < keys.length; i++ ){
newObj[keys[i]] = values[i]
}
console.log(newObj);
newObj.key1 = 'asd';
console.log(newObj);
禁用对Google Analytics(分析)的请求。完成此操作后,我必须重新启动终端。这样的命令诸如flutter config --no-analytics
似乎可以正常工作。
但是,如果您仍然遇到flutter doctor
或flutter build
的问题,这可能是由于此Dart issue中提到的Dart Pub库中的错误所致。问题出在flutter pub get
似乎发出了一些网络请求。
在我的Mac上,该问题是由Avast似乎阻止了这些请求触发的。用另一台AV取代Avast并使用Mac内置的防火墙似乎可以解决此问题。 最好是暂时的解决方法,因为更改AV程序是一种极端的解决方案。
答案 1 :(得分:0)
这可能是防火墙问题
如果您在中国,请查看https://flutter.io/community/china
如果您使用的是自签名证书,请参见https://github.com/flutter/flutter/issues/15014
答案 2 :(得分:0)
在我的情况下(中国),仅根据Zöchbauer's answer中的说明使用本地镜像是不够的。
运行flutter doctor
时,我不得不打开VPN(我使用Astrill)并切换到StealthVPN模式来解决此问题。
请参阅this github issue,然后跳转到ScholarChild的评论。