【问题标题】:Flutter occurs 'Error connecting to the service protocol: HttpException...' error on iOS deviceFlutter 在 iOS 设备上出现“连接到服务协议时出错:HttpException ...”错误
【发布时间】:2019-05-24 18:53:08
【问题描述】:

对于网络连接,我使用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(设备/模拟器)上出现此错误:

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

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

同样,Dart http package 也会发生这种情况。


编辑 1:2019 年 9 月 25 日

This has nothing to do with codes!

The problem is the system WiFi connection.

当您遇到此问题时,请使用此临时解决方案,直到提供完整的解决方案:

  1. 断开系统 WiFi
  2. 拔掉你的手机
  3. 将您的系统重新连接到 WiFi
  4. 插上你的手机
  5. 运行应用程序

【问题讨论】:

  • 我也有这个问题。我想知道,您是否将 Firebase 用于此应用中的任何内容?
  • 不@Kirby,只是简单的http connection,我真的知道为什么会发生这种情况,它发生在所有设备上还是仅在iOS上?
  • 三星 Galaxy S10 (API 10) Genimotion 的模拟器上总是发生这个错误。

标签: android ios dart flutter httpexception


【解决方案1】:

只需将您的设备与您的 IDE 重新连接并重新启动您的 IDE,然后它就会工作。

【讨论】:

    【解决方案2】:

    运行flutter clean 命令-它会删除以前的构建。 然后执行 try flutter run 命令

    【讨论】:

      【解决方案3】:

      我也有同样的问题。当它发生时,我拔下/插入 iPhone,它就开始工作了。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          我遇到了同样的问题,我在 Windows 中使用 android studio。问题在于我想用于 FB 登录的 flutter_facebook_login 依赖项(使用 firebase)。 这个依赖的版本是3.0.0,所以最后我删除了这个依赖,一切正常

          【讨论】:

            【解决方案6】:

            看起来是 Facebook 插件导致了this issue。 如果您正在使用它,请尝试禁用它。

            【讨论】:

              【解决方案7】:

              任何足够旧的插件都可能导致此问题。如果您确实需要该插件并且最近没有更新,那么您可以将文件夹本地添加到您的项目并升级 gradle 构建文件。但这只是在您找不到替代的最近更新插件的情况下。 Facebook 登录插件在最近的更新中修复了此问题,因此最新的 Facebook 登录插件不再有此故障。至于我,我必须一一检查我的每个包裹,看看是哪一个导致了问题。这涉及打开一个新的 android studio 项目,只添加颤振包而不添加其他代码,然后运行应用程序并逐个添加插件,直到找到哪个插件有问题。更快的方法是检查 pub.dev 上的每个插件,看看哪个插件最近几个月没有更新,并且正在使用旧的 gradle 文件。

              【讨论】:

                【解决方案8】:

                原因对我来说是一个 non-null safe 插件:

                1.) 所以我把它复制到 lib folder

                2.) 并使它成为 null safe
                3.)然后将其从pubspec.yaml中删除

                【讨论】:

                  【解决方案9】:

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

                  【讨论】:

                    【解决方案10】:

                    我遇到了类似的问题,但只是在我想从终端运行正常的 IDE 运行应用程序时才开始。不知何故,该错误仅在我想从终端和 IDE 交替运行应用程序时发生。 什么对我有用... 我重新启动连接的设备并从终端运行应用程序,它又好了。但是,一旦我想从 IDE 运行,错误就会返回。 我再次重新启动连接的设备,这次直接从 IDE 运行应用程序,它运行良好。

                    【讨论】:

                      【解决方案11】:

                      我也遇到了同样的错误,我执行了以下操作并解决了我的问题:

                      1. Restart your phone/emulator
                      2. Reconnect your Device/emulator with your IDE and restart as well your IDE

                      【讨论】:

                        猜你喜欢
                        • 2023-03-25
                        • 2019-09-29
                        • 1970-01-01
                        • 2020-08-16
                        • 1970-01-01
                        • 1970-01-01
                        • 2022-01-22
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多