Flutter Emulator 连接到服务协议时出错

Posted

技术标签:

【中文标题】Flutter Emulator 连接到服务协议时出错【英文标题】:Flutter Emulator Error Connecting to Service Protocol 【发布时间】:2019-09-29 06:52:48 【问题描述】:

我在 android Studio 中遇到了 Flutter 问题,每当我运行我的 Flutter 应用程序时,它都会打印此错误; “连接到服务协议时出错:HttpException: Connection closed before full header was received, uri = http://127.0.0.1:53305/9So9Wn564F4=/ws” ,它将与模拟器中的应用程序“断开连接”。 该应用程序仍会运行,但我无法使用热重载等功能。

我在 Windows 机器上,Flutter Doctor 没有提示任何错误。 我试图阅读 github 帖子上的类似问题,但我无法解决问题。

你们中有人对如何解决这个问题有任何想法吗?

在实际设备上运行时不会出现该问题,仅在模拟器中。

【问题讨论】:

一样!您使用的是哪个颤振版本?我正在使用 1.5.4-hotfix.2。 flutter_barcode_scan 对我造成了错误。有人知道有效的条形码包吗? 我刚做了冷启动,它工作了。 我也面临同样的问题,是否与我的 Zorin OS(基于 Ubuntu)上的防火墙有关 尝试擦除模拟器数据 【参考方案1】:

如果你回到之前版本的android,(Android Pie),你将不再有这个问题,它只与最新版本的android(Q,29)有关,在其他你将不再有问题。

【讨论】:

对我来说正好适用于 Android Pie// 我能够通过使用 30+ API 克服它【参考方案2】:

究竟发生了什么

嘿,我也遇到了同样的问题。 我不能在 Windows 中使用模拟器,因为我的电脑是非常低端的电脑。 所以,我不得不改用我的手机。它是带有 Android 6.0.1 (Android Marshmallow) 的三星 Galaxy J2 Pro (SM-J210F)。 我经常用那部手机开发 Flutter 应用,但突然间,我就遇到了这个问题。

这是我尝试在 VS-Code(v1.52.0) 中运行“Flutter Attach”时发生的情况。

命令

颤振附加--machine -d 420054e7960eb400

异常

StateError: Bad state: 现有 VM 服务客户端阻止 DDS 控制。

#0      DartDevelopmentService.startDartDevelopmentService (package:flutter_tools/src/base/dds.dart:83:11)
<asynchronous suspension>
#1      FlutterDevice.connect.<anonymous closure> (package:flutter_tools/src/resident_runner.dart:249:11)
<asynchronous suspension>

解决问题(在 Windows 10 中)

所以,我运行了这些命令来解决这个问题。

修复 Flutter SDK

-flutter clean -v

-flutter channel stable **(如果这些都不能解决问题,则可选)

-颤振升级-v

-flutter pub cache repair -v(免责声明:它会下载所有软件包的每个版本。确保互联网速度非常快,或者至少花一个小时。)

配置您的代理/***

如果您使用代理或 *** 连接到互联网, 确保应用程序没有通过它解析 localhost。(DNS)

杀死 ADB 和 Dart 进程。

之后,在 Windows 上终止 adb 和 dart 进程。 (我不确切知道如何在 Mac/Linux 中杀死这些。对此感到抱歉) 在命令提示符中运行这些命令。

taskkill /f /im dart*taskkill /f /im adb*(您可以运行“adb kill-server "也)

在 Windows 中修复 ADB(*可选)。

导航到 %HOMEDRIVE%:\Users%USERNAME%.android" 就我而言,它是 (C:\Users\Isira Adithya.android) 然后删除 adbkey

修复 Android 设备中的 Android 调试

断开设备与计算机的连接。 转到设置 -> 开发者选项, 关闭 USB 调试并重新打开。 撤销 USB 调试授权。 重启设备。

更新 Windows 和 Android 系统(如果上面没有解决问题)

结论

我认为这些步骤应该可以解决您的问题。 此外,我仍然 16 岁,我不是一个非常有经验的开发人员。 如果这些没有解决,请使用它来获取更多信息。 Github Issue

【讨论】:

【参考方案3】:

快速重启手机对我有用

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 Ty,重启也对我有用。【参考方案4】:

抱歉,我不知道您如何在 Windows 上解决它,但对于 Mac Os 用户:转到系统偏好设置 -> 网络 -> 点击您的手机 - > 取消选中“除非需要,否则禁用”

感谢https://github.com/flutter/flutter/issues/46698#issuecomment-565643127

【讨论】:

遗憾的是,这与使用模拟器时发生的修复此问题无关。【参考方案5】:

在模拟器中卸载应用程序为我解决了同样的问题

【讨论】:

【参考方案6】:

试试

flutter run --release

我在升级 Flutter 1.13 后遇到了同样的问题,但上面的命令有帮助。

【讨论】:

在尝试此解决方案时收到此消息“模拟器不支持发布模式。”【参考方案7】:

就我而言,当我错误地使用 facebook_login、twitter_login 等 3rd 方时,我遇到了错误。

检查:

注释来自 pubspec.yaml 的库,以及相应的代码。

修复:

为第 3 方正确更新配置。

希望对您有所帮助。

【讨论】:

你能告诉我如何解决它。因为我遇到了同样的错误 @RutvikGumasana:尝试评论所有 3rd 方库,例如 facebook、twitter ......,代码也在使用它们。清理,重新安装应用程序 但我需要使用这个 facebook 库。那么我该如何摆脱这个错误呢? @RutvikGumasana 你需要正确配置 facebook 插件。今天,我尝试再次融入。它运行良好。【参考方案8】:

对我来说,这是由 flutter_facebook_login 插件引起的问题,我删除了它,我可以删除 facebook 登录选项,但在你的情况下,你可以尝试不同版本的 flutter_facebook_login 或者你可以使用不同的插件来使用 facebook 登录。

【讨论】:

我刚刚删除了 facebook 依赖项,应用程序现在运行良好【参考方案9】:

在虚拟设备管理器中,尝试以下选项之一。

Wipe Data
Cold Boot Now

【讨论】:

【参考方案10】:

我遇到了与 ios 类似的问题,错误消息为 Error connecting to the service protocol: failed to connect to http://127.0.0.1:......。我通过从模拟器中删除应用程序并在 xcode 中运行清理来解决它,然后它可以从 vs code 成功构建!

【讨论】:

【参考方案11】:

似乎它可以是不同的东西。就我而言,我删除了我正在使用的一个包,barcode_scan。

【讨论】:

【参考方案12】:

我有同样的问题,我去 xcode -> 窗口 -> 设备和模拟器,在已安装的应用程序下我删除了一些应用程序,它可以工作。

【讨论】:

【参考方案13】:

在 android studio 中打开项目 => 启动您的模拟器 - 或者 - 使用“开启”调试模式连接您的 android 设备 => 在 android studio 上运行项目 => 从 VS 代码或使用 @987654321 的命令行运行您的项目@

【讨论】:

【参考方案14】:

当我在 AVD Manager 中删除模拟器并重建它时,它可以工作。

【讨论】:

【参考方案15】:

对我来说,这是由手机屏幕保护程序引起的。模拟器屏幕被锁定。后 我按下电源图标,屏幕打开。然后我再次运行它,一切正常。

【讨论】:

【参考方案16】:

在android文件夹中添加一些代码后我已经解决了这个问题。

1.在AndroidManifest.xml中添加以下代码

 <meta-data android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebook_app_id"/>

    <activity android:name="com.facebook.FacebookActivity"
        android:configChanges=
            "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name" />
    <activity
        android:name="com.facebook.CustomTabActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="@string/fb_login_protocol_scheme" />
        </intent-filter>
    </activity>

2.在strings.xml中添加你的Facebook应用ID

<string name="facebook_app_id">380000000000000</string>
<string name="fb_login_protocol_scheme">fb380000000000000</string>

3.在pubspec.yaml中添加依赖

flutter_facebook_login: ^1.1.1

Pub 获取并运行。

【讨论】:

【参考方案17】:

就我而言,我只是关闭了模拟器,然后再次运行它。

【讨论】:

【参考方案18】:

我收到了同样的错误信息。就我而言,问题只是我在 Runner.xcodeproj 中更改的配置。

在 Xcode 中打开 runner.xcodeproj,转到常规选项卡 -> 应用程序图标和启动图像 -> “启动屏幕文件”。我已将其更改为 Main 并导致错误,更改回“LaunchScreen”选项为我解决了问题。

【讨论】:

【参考方案19】:

试试

颤振医生-v

我也遇到过同样的问题。所以我运行 flutter doctor -v 命令。

然后我发现了错误

✗ 不接受 Android 许可证。要解决此问题,请运行:flutter doctor --android-licenses。

flutter doctor --android-licenses这个命令解决了我的问题。

【讨论】:

【参考方案20】:

这也发生在我身上,问题是我在我的电脑上使用了 ***,我关闭了 ***,一切正常

【讨论】:

【参考方案21】:

我也遇到过同样的问题,但唯一能解决我的问题的方法是在我的实体手机上卸载该应用程序,然后我再次尝试运行。确实是它的工作。

【讨论】:

以上是关于Flutter Emulator 连接到服务协议时出错的主要内容,如果未能解决你的问题,请参考以下文章

Android Emulator 无法连接到 React-Native 远程调试器 - 连接时超时

将 Flutter 连接到真实设备中的 localhost 服务器

在连接到 Internet 时构建 Flutter Web 应用程序会给我一个内部服务器错误。?

Windows Mobile Emulator 连接超时访问本地 Web 服务

如何从 GoLang 应用程序连接到 Bigtable Emulator?如何使用它?

无法使用 Flutter 连接到 wss