【问题标题】:Observatory server failed to start - Fails to create Socket Server天文台服务器无法启动 - 无法创建 Socket 服务器
【发布时间】:2019-03-12 11:00:47
【问题描述】:

我正在为自己构建一些内部工具,以使用我设置的一些模板以及一些可以在应用程序之间共享的附加功能来生成 Flutter 应用程序。

目前代码编译、构建和部署良好,但它卡在第一个视图(空白屏幕)上,并在失败前重试启动 Observatory 服务器 11 次。除以下错误外,没有其他错误。

Launching lib\main.dart on Android SDK built for x86 in debug mode...
Built build\app\outputs\apk\debug\app-debug.apk.
I/flutter ( 7011): Observatory server failed to start after 1 tries
I/flutter ( 7011): Observatory server failed to start after 2 tries
I/flutter ( 7011): Observatory server failed to start after 3 tries
I/flutter ( 7011): Observatory server failed to start after 4 tries
I/flutter ( 7011): Observatory server failed to start after 5 tries
I/flutter ( 7011): Observatory server failed to start after 6 tries
I/flutter ( 7011): Observatory server failed to start after 7 tries
I/flutter ( 7011): Observatory server failed to start after 8 tries
I/flutter ( 7011): Observatory server failed to start after 9 tries
I/flutter ( 7011): Observatory server failed to start after 10 tries
I/flutter ( 7011): Observatory server failed to start after 11 tries
I/flutter ( 7011): Could not start Observatory HTTP server:
I/flutter ( 7011): SocketException: Failed to create server socket (OS Error: Permission denied, errno = 13), address = 127.0.0.1, port = 0
I/flutter ( 7011): #0      _NativeSocket.bind (dart:io/runtime/bin/socket_patch.dart:591:7)
I/flutter ( 7011): <asynchronous suspension>
I/flutter ( 7011): #1      _RawServerSocket.bind (dart:io/runtime/bin/socket_patch.dart:1206:26)
I/flutter ( 7011): #2      _ServerSocket.bind (dart:io/runtime/bin/socket_patch.dart:1466:29)
I/flutter ( 7011): #3      ServerSocket.bind (dart:io/runtime/bin/socket_patch.dart:1457:26)
I/flutter ( 7011): #4      _HttpServer.bind (dart:_http/http_impl.dart:2520:25)
I/flutter ( 7011): #5      HttpServer.bind (dart:_http/http.dart:227:19)
I/flutter ( 7011): #6      Server.startup.poll (dart:vmservice_io/server.dart:355:36)
I/flutter ( 7011): <asynchronous suspension>
I/flutter ( 7011): #7      Server.startup (dart:vmservice_io/server.dart:367:23)
I/flutter ( 7011): <asynchronous suspension>
I/flutter ( 7011): #8      main (dart:vmservice_io/vmservice_io.dart:253:12)
I/flutter ( 7011): 

我的问题是:

  • 我该如何调试这个问题?
  • 您知道是什么原因造成的吗?

代码看起来与我正在处理的模板相同(有效),唯一的区别是包名称不同。

编辑 1

Here 是挂起以供复制的项目的链接。

【问题讨论】:

  • 听起来像是防火墙问题。就像您阻止应用程序创建网络连接一样。您使用的是什么操作系统?
  • @GünterZöchbauer 我正在使用 Windows。我的所有其他应用程序,包括基于此的模板应用程序,可以在这里找到 github.com/FilledStacks/flutter-architecture-skeletons/tree/… 工作得很好。它是挂在第一个视图上的生成的版本。您知道的颤振项目中是否有任何值会导致这种情况?我要上传一些代码进行测试,可能是我的机器。
  • 很难说。如果与代码有关,请尝试将页面中的代码注释掉。也许有一些无限循环或类似情况不允许 VM 及时响应。
  • @GünterZöchbauer 没有代码运行。 main.dart 的第一行也没有运行。这是在调试过程中启动应用程序时,一旦部署了应用程序,我就会得到上面的日志。您可以看到它正在部署,然后尝试连接。你能下载我的 repo 并尝试运行它,只是想确认它在别人的机器上工作/不工作。
  • @GünterZöchbauer 代码被停止在答案中

标签: websocket dart flutter serversocket


【解决方案1】:

在 Android Manifest 文件中添加 Internet 权限。 我也面临这个问题。添加此权限后,现在可以正常工作了。

<uses-permission android:name="android.permission.INTERNET"/>

问题是发布模式需要 Internet 权限。

Android Manifest 文件对此有描述

开发需要 INTERNET 权限。具体来说, Flutter 需要它与正在运行的应用程序进行通信 允许设置断点,提供热重载等。

【讨论】:

  • 这太奇怪了,我在我的 AndroidManifest.xml 文件中添加了这个,然后我开始收到这个错误。我阅读了文档,目前调试模式允许互联网连接,但可能在发布版本中人们需要提供访问权限。我猜在添加此行后,我将能够在我的物理设备上运行它,但不能在虚拟设备中运行调试模式。
  • 只是为了说清楚。答案是关于 DEBUG 清单而不是 RELEASE 清单。
【解决方案2】:

检查 android/app/src 应该有 debug、main 和 profile 目录。 check image

  1. 如果缺少调试文件夹,只需创建一个并从配置文件复制清单,粘贴到调试中。
  2. 如果有调试文件夹,请检查它是否具有 Internet 权限。如果不添加。

【讨论】:

    【解决方案3】:

    当我剥离模板时,我在不知不觉中删除了 android/app/src 下的调试文件夹,以为它是从构建生成的文件。这是 Android 用来允许调试的清单,所以它需要在那里。

    【讨论】:

    • .gitignore 文件列出了可以删除的所有内容。
    猜你喜欢
    • 2019-03-28
    • 2019-07-20
    • 1970-01-01
    • 2022-12-21
    • 1970-01-01
    • 2013-12-08
    • 2015-08-15
    • 2021-07-08
    • 2013-06-05
    相关资源
    最近更新 更多