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 服务