无法连接远程调试器

IT技术 android reactjs react-native
2021-03-25 03:02:23

我正在使用 React.JS,当我这样做时react-native run-android(插入我的设备)我看到一个空白页面。当我摇晃设备并Debug JS Remotely从选项列表中进行选择时,我会看到以下屏幕。

在此处输入图片说明

供参考:

OS: Ubuntu 16.04
Node version is: v4.6.2
java version "1.8.0_111"
react": "15.4.1
react-native": "0.38.0
6个回答

在我的情况下,问题是模拟器正在向以下请求发出请求:

http://10.0.2.2:8081/debugger-ui

代替:

http://localhost:8081/debugger-ui 并且请求失败。

解决问题:在您的模拟器上启用远程调试之前,请http://localhost:8081/debugger-ui在 chrome 中打开然后启用远程调试并返回 chrome 页面,您应该在其中看到您的控制台日志。

谢谢你。首先它是如何设置为 10.0.2.2 的?
2021-05-31 03:02:23
最后一段是唯一对我有用的东西。
2021-06-04 03:02:23
为我工作——谢谢!您是否找到了一种方法将其设置为始终尝试连接到 localhost 以避免必须先打开 chrome 选项卡?
2021-06-07 03:02:23
从您的模拟器向“本地主机”发出的请求将尝试访问模拟器上的环回端口,而不是您的 PC(您需要 PC 的环回)。为了解决这个问题,android 创建了别名 10.0.2.2 以允许您访问在您的 PC 上运行的服务(有关文档参考,请参阅developer.android.com/studio/run/emulator-networking)。至于为什么请求失败,我不确定,但它似乎是 react/android 的一个记录问题,请参阅github.com/facebook/react-native/issues/17970
2021-06-13 03:02:23
您可以进入模拟器上的 Dev Settings (Ctrl + M) 并将调试服务器更改为“localhost:8081”。
2021-06-20 03:02:23

解决了以下问题:

  • 按下Cmd + M模拟器屏幕
  • Dev settings > Debug server host & port for device
  • localhost:8081
  • 重新运行安卓应用: react-native run-android

调试器现已连接!

对于那些遇到 CMD + M 按钮不起作用的问题的人,我在 adb 所在的 shell 中使用了 './adb shell input keyevent 82' 来触发它。之后快捷键就开始工作了!
2021-05-23 03:02:23
现在它只是试图连接到远程调试器......永远
2021-06-03 03:02:23
先生是一个血腥的传奇。X
2021-06-04 03:02:23
Cmd + M 工作或 ./adb 工作我如何与调试器连接?
2021-06-21 03:02:23

我解决了它adb reverse tcp:8081 tcp:8081,然后reload在我的手机上。

在我的例子中,选择Debug JS Remotely启动了 Chrome,但没有连接到 android 设备。通常,新的 Chrome 选项卡/窗口会在地址栏中预先填充调试 URL,但在这种情况下,地址栏是空白的。超时时间过后,显示“无法与远程调试器连接”错误消息。我通过以下程序修复了这个问题:

  • adb reverse tcp:8081 tcp:8081
  • 粘贴http://localhost:8081/debugger-ui到我的 Chrome 浏览器的地址字段中。您应该会看到正常的调试屏幕,但您的应用程序仍然无法连接。

那应该可以解决问题。如果没有,您可能需要执行以下额外步骤:

  • 从您的 Android 设备关闭并卸载该应用程序
  • 重新安装应用程序 react-native run-android
  • 在您的应用上启用远程调试。
  • 您的应用程序现在应该连接到调试器。
汤姆……谢谢!在此之前,我设置了我的 IP 地址(“开发设置”->“设备的调试服务器主机”)xxxx:8081
2021-06-05 03:02:23

我有一个类似的问题,导致我提出这个问题。在我的浏览器调试器中,我收到此错误消息:

从源 ' http://127.0.0.1:8081 '获取在 ' http://localhost:8081/index.delta?platform=android&dev=true&minify=false '的访问已被 CORS 策略阻止:没有 'Access-Control -Allow-Origin' 标头存在于请求的资源上。如果不透明响应满足您的需求,请将请求的模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。

我花了一段时间才意识到我正在使用127.0.0.1:8081而不是localhost:8081用于我的调试器。

要修复它,我只需将 Chrome 从以下位置更改:

http://127.0.0.1:8081/debugger-ui/

http://localhost:8081/debugger-ui/
实际上对我来说正好相反。但实际上“本地主机”通常相当于 127.0.0.1。这取决于将地址设置为 localhost 的内容。总是最好是明确的
2021-06-01 03:02:23