Flutter Emulator错误连接到服务协议

时间:2019-05-11 18:38:48

标签: android-studio flutter android-emulator

我在Android Studio中遇到Flutter的问题,每当我运行Flutter应用程序时,它都会显示此错误; “连接服务协议时出错:HttpException:在接收到完整的报头之前,连接已关闭,uri = http://127.0.0.1:53305/9So9Wn564F4=/ws”,它将与模拟器中的应用程序“断开连接”。 该应用程序仍将运行,但是我不能使用“热重装”之类的功能。

我在Windows计算机上,Flutter Doctor并未指出任何错误。 我曾尝试阅读github帖子上的类似问题,但无法解决问题。

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

仅在仿真器中运行在实际设备上时,不会发生此问题。

17 个答案:

答案 0 :(得分:5)

如果您返回以前的android版本(Android Pie),您将不再有此问题,它仅与android的最新版本(Q,29)有关,在其他版本中,您将不再具有问题。

答案 1 :(得分:3)

到底发生了什么

嘿,我也遇到了同样的问题。 我无法在 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 **(如果这些没有解决问题,则可选)

<块引用>

-flutter upgrade -v

<块引用>

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

配置您的代理/VPN

如果您使用代理或 VPN 连接到互联网,
确保应用程序没有通过那个解析本地主机。(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

答案 2 :(得分:2)

对于我来说,当我错误地使用了诸如facebook_login,twitter_login之类的第三方时,我遇到了错误。

要检查:

  • 评论pubspec.yaml中的库,以及相应的代码。

要解决:

  • 正确更新第三方的配置。

希望获得帮助。

答案 3 :(得分:1)

我不知道您是否已经知道了,但这对其他人可能有用。

我也遇到了同样的问题,因此我在this video中找到了答案。总之,我不得不更改我的Android模拟器。

P.S。我主要是一名iOS开发人员,因此对Flutter和Android还是陌生的,所以我不确定这是否是最好的方法。

答案 4 :(得分:1)

对我来说,这是由flutter_facebook_login插件引起的,因此我删除了它,并且我有能力删除facebook登录选项,但是在您的情况下,您可以尝试使用不同版本的flutter_facebook_login,也可以使用其他插件登录使用Facebook。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

试试

<块引用>

颤动医生 -v

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

然后我发现了错误

<块引用>

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

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

答案 7 :(得分:0)

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

在 Xcode 中打开 runner.xcodeproj,转到 General 选项卡 -> App Icons and Launch Images ->“Launch Screen File”。我已将其更改为 Main 并导致错误,更改回“LaunchScreen”选项为我解决了问题。

答案 8 :(得分:0)

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

答案 9 :(得分:0)

在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。将您的Facebook应用ID添加到strings.xml

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

3。在pubspec.yaml中添加依赖项

flutter_facebook_login: ^1.1.1

运行并获取

答案 10 :(得分:0)

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

答案 11 :(得分:0)

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

答案 12 :(得分:0)

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

Wipe Data
Cold Boot Now

enter image description here

答案 13 :(得分:0)

在android studio中打开项目=>启动仿真器-或-以调试模式“打开”将android设备连接=>在android studio上运行项目=>从VS代码或使用{{ 1}}

答案 14 :(得分:0)

我遇到相同的问题,然后转到“ xcode”->“窗口”->“设备和模拟器”,在“已安装的应用程序”下,我删除了一些应用程序,并且可以正常工作。

答案 15 :(得分:0)

看来这可能是不同的事情。就我而言,我删除了我正在使用的包装,barcode_scan。

答案 16 :(得分:0)

尝试

flutter运行--release

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