React-native android调试器连接到10.0.2.2而不是localhost

时间:2018-03-26 19:32:29

标签: react-native android-emulator react-native-android react-native-debugger

在运行app react-native run-android时,它连接到10.0.2.2:8081而不是localhost:8081,无法调试。

是否有人知道如何修复以便它将连接到localhost?

5 个答案:

答案 0 :(得分:13)

在MAC上,我通过以下操作解决了该问题:

  1. 在仿真器屏幕上按Cmd + M
  2. 开发设置>调试设备的服务器主机和端口
  3. 设置localhost:8081
  4. 重新运行android应用:react-native run-android

调试器现在已连接!

希望对其他人有帮助:)

答案 1 :(得分:3)

您可以尝试通过开发设置>进行更改调试服务器&菜单上的设备的主机端口,您可以访问摇动设备或在终端中运行adb shell input keyevent 82命令

答案 2 :(得分:0)

只需运行端口转发

adb -s emulator-5554 reverse tcp:8081 tcp:8081

将您的api服务器或连接到端口5000

adb -s emulator-5554 reverse tcp:5000 tcp:5000

答案 3 :(得分:0)

如果您创建了 network_security_config.xml 文件以允许连接硬件设备,这可能是问题的根源。只需在该文件中添加 localhost 和 10.0.2.2 就可以了。

例如。 network_security_config.xml 文件:

<network-security-config>
  <domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="false">localhost</domain>
    <domain includeSubdomains="false">10.0.2.2</domain>
    <domain includeSubdomains="false">192.168.0.12</domain>
  </domain-config>
  <base-config>
    <trust-anchors>
        <certificates src="system"/>
        <certificates src="user"/>
    </trust-anchors>
  </base-config>
</network-security-config>

答案 4 :(得分:0)

我为此编写了一个小包,因为它让我不得不打开屏幕,特别是在使用和重新启动多个模拟器时。查看 here 和示例项目 here

npm i @nick-bull/react-native-debug-address

# DEBUG_HOST=127.0.0.1:8081 npx react-native start --port 8081
# or, equivalently
DEBUG_PORT=8081 npx react-native start --port 8081

npx react-native run-android --port 8081