【问题标题】:React-Native for Android: Could not connect to development server适用于 Android 的 React-Native:无法连接到开发服务器
【发布时间】:2019-07-02 14:25:32
【问题描述】:

我正在为现有项目设置 react native android。我按照Official getting started 页面的说明进行操作。当我运行react-native run-android 时,我可以在模拟器中打开应用程序。该应用程序运行良好。 但问题是,当我使用双击R 键重新加载它时,它会抛出错误Could not connect to development server。

在模拟器和真实设备上都出现此错误

我尝试过的解决方案:

  1. 在同一个 wifi 上运行真实设备和 Macbook。
  2. 在Dev Setting -> Debug server host & port for device的Android设备/模拟器中设置macbook的IP地址和端口
  3. 运行adb reverse tcp:8081 tcp:8081

还是没有运气。

当我使用CMD + D 打开开发者选项并点击Debug JS Remotely 时,它会抛出不同的错误: Unable to connect to remote debugger. CLEARTEXT communication to 192.x.x.x not permitted by network security policy.

在某些情况下,它会显示“正在连接到远程调试器”,但会卡在那里。

【问题讨论】:

  • 只是好奇,你有没有试过在不同的模拟器上这样做?
  • 我尝试了 Emulator Google Pixel 3,但它不起作用。我也在真机上试过。但有同样的问题。

标签: android reactjs react-native


【解决方案1】:

这个答案解决了我的问题:https://stackoverflow.com/a/53158627/2630184

Android Pie 上的Cleartext 似乎有问题,因为我也提到了这个问题,即单击Debug js remotely 时会显示明文错误。

在 AndroidManifest.xml 中添加 android:usesCleartextTraffic="true",为我解决了这个问题。

<application
    android:name="com.example.app"
    android:allowBackup="false"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:usesCleartextTraffic="true">

【讨论】:

  • 请注意,这可能是一个安全问题,并且 android:usesCleartextTraffic="true" 只能在 AndroidManifest.xml 中用于调试目的。在生产环境中,所有信息都应通过 HTTPS 传输。
【解决方案2】:

请检查您的设备是否有互联网连接。如果 Wi-Fi 符号带有叉号,则表示 MacOS 与模拟器之间的连接存在问题。对我来说,上次帮助下一步:

1) 转到 Mac > 系统偏好设置 > 网络 > 高级... > DNS。

2) 点击+添加新的DNS服务器。

3) 在那里添加 8.8.8.8。

4) 关闭您的模拟器并再次打开它。检查连接以及构建是否正常

【讨论】:

  • 嗨,谢谢。我做了那个改变。还是行不通。同样的错误。一段时间后,它显示带有绿色顶栏“连接到远程调试器”的空白屏幕。不是它卡在那里。以前也发生过这种情况。
  • 我已经发布了答案:在 AndroidManifest.xml 中添加 android:usesCleartextTraffic="true" 解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-11
  • 2016-10-20
  • 2021-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-14
相关资源
最近更新 更多