Flutter在iOS设备上发生“连接服务协议错误:HttpException ...”错误

时间:2018-12-26 14:16:06

标签: android ios dart flutter httpexception

对于网络连接,我使用dio,并从Connectivity检查连接状态。

在这里,我检查网络状态:

@override
 Widget build(BuildContext context) {

 bloc.checkConnectivity(Connectivity());

 return StreamBuilder(
    stream: bloc.getInitApp,
    builder: (context, AsyncSnapshot<InitApp> initApp) {
      if (initApp.hasData) {
        return prepareMain(initApp.data);
      } else {
        return Center(
          child: CircularProgressIndicator(),
        );
      }
    });
}

checkConnectivity方法:

checkConnectivity(Connectivity _connectivity) {
 _connectivity.onConnectivityChanged.listen((ConnectivityResult result){
   if (result == ConnectivityResult.mobile ||
       result == ConnectivityResult.wifi) {
       fetchInitApp();
    }
   });
 }

但是最终,App仅在Android设备上运行,但在iOS(Device / Simulator)上发生此错误:

Error connecting to the service protocol: HttpException: , uri = http://127.0.0.1:1024/ws

我尝试在没有Api的情况下调用Connectivity,该应用程序运行良好,但仅在Android上就可以获取数据,而对于iOS仍然存在问题。

也是,它发生在Dart http软件包中。

9 个答案:

答案 0 :(得分:1)

如果要从Mac共享网络,请禁用它。对我有用。

答案 1 :(得分:1)

使用Android API 28代替API 29。

对我有用。

答案 2 :(得分:0)

只需将您的设备与IDE重新连接,然后重新启动IDE,即可正常工作。

答案 3 :(得分:0)

运行flutter clean命令-它删除以前的版本。   然后执行try flutter run命令

答案 4 :(得分:0)

我有同样的问题。发生这种情况时,我拔下了iPhone的插头,它开始工作。

答案 5 :(得分:0)

我遇到了同样的问题,我在Windows中使用的是Android Studio。问题出在我要用于FB登录的flutter_facebook_login依赖项中(使用firebase)。 该依赖项的版本为3.0.0,所以最后我删除了此依赖项,一切正常

答案 6 :(得分:0)

好像Facebook插件引起了this issue。 如果您正在使用它,请尝试将其禁用。

答案 7 :(得分:0)

任何足够老的插件都可能导致此问题。如果您确实需要该插件,并且尚未最近更新,则可以将该文件夹本地添加到您的项目中,并升级gradle构建文件。但这仅是在您找不到其他最近更新的插件的情况下。 Facebook登录插件在最近的更新中解决了此问题,因此最新的Facebook登录插件不再有此故障。对于我来说,我必须一个个检查一个软件包,看看哪个软件包引起了问题。这涉及打开一个新的android studio项目,仅添加flutter包,没有其他代码,然后运行应用程序并逐个添加插件,直到找到哪个插件有问题为止。一种更快的方法是检查pub.dev上的每个插件,看看哪个插件最近几个月没有更新,并且正在使用较旧的gradle文件。

答案 8 :(得分:-1)

只需升级你的颤振,这对我有用