React-Native 运行-Android 无法识别 Open Metro Server

React-Native Run-Android Doesn't recognize Open Metro Server

问题:这几天之间没有任何变化。即使我有 metro 运行ning npx react-native start 当我 运行 npx react-native run-android 它启动它自己的 metro 服务器并且不允许我做“快速刷新”它基本上安装调试将应用程序构建到设备上。为了开发目的,我需要它来快速刷新。 已经尝试了有关问题的步骤:

为了测试和调试我的 android 构建的 react-native 项目,我在一个 Powershell window 中有一个模拟器 运行,将在第二个 Powershell 中启动一个 Metro 服务器window 使用 npx react-native start 然后 运行 第三个 powershell 中的应用程序 window 使用 npx react-native run-android 它将通过构建并安装应用程序,然后它将“通过" 应用程序到 react-native metro 服务器,然后将其安装到模拟器。这将允许我更改代码并“快速刷新”emulator/phone 中的应用程序,并将日志输出到 Metro 服务器。

版本(在项目根文件夹中执行)

npx react-native --version : 6.0.0

npx --version : 7.18.1

设置:

第一个 Powershell window: emulator -avd Galaxy_Nexus_Android9 -no-snapshot

第二个 Powershell window: 确保 abd 设备是 运行ning

adb devices

结果

List of devices attached
emulator-5554   device

运行 npx react-native start

结果:Metro JS Server Start

第三个 Powershell Window 运行: npx react-native run-android

结果:Run Android

我将它启动自己的 JS 服务器的行框起来,而不是使用打开的那个。

该应用程序在模拟器上打开良好(我初始化了一个新应用程序以确保该应用程序没有任何问题)App Running Android

但是在 Metro window 上,它没有安装该应用程序,当我尝试重新加载时它说它无法检测到任何 运行ning 应用程序 Metro Restart 我已经尝试过这里的解决方案 运行 它在不同的端口上没有成功 No apps connected. Sending "reload" to all React Native apps failed. Make sure your app is running in the simulator or on a phone connected via USB

解决方法: 运行 启动 metro 服务器和 运行-android 命令在不同的端口上。 我怀疑 McAfee 使用的是默认端口 8081。

打开管理 CMD/Powershell 和 运行 以下内容:

反转 adb 设备将侦听的端口: adb reverse tcp:8081 tcp:8090

在同一端口启动 Metro 服务器: npx react-native start --port 8090

打开另一个管理员CMD/Powershell window and 运行:

在同一端口上启动 android build/run: npx react-native run-android --port=8090

最后一条命令也应该会自动启动模拟器。

如果 Metro 服务器在您执行 运行-android 命令后出错,只需在同一个 window 中再次 运行 npx react-native start --port 8090