React-Native Run-Android 无法识别 Open Metro Server

Dan*_*yan 1 android reactjs react-native metro-bundler

问题:这几天之间没有发生任何变化。即使我npx react-native start在运行时运行了 Metro npx react-native run-android,它也会启动它自己的 Metro 服务器,并且不允许我进行“快速刷新”,它基本上会将应用程序的调试版本安装到设备上。我需要它来快速刷新以用于开发目的。已经尝试了有关问题的步骤:Unable to load script from assets index.android.bundle on windows

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

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

npx react-native --version:6.0.0

npx --version:7.18.1

设置:

第一个 Powershell 窗口: emulator -avd Galaxy_Nexus_Android9 -no-snapshot

第二个 Powershell 窗口:确保 abd 设备正在运行

adb devices
Run Code Online (Sandbox Code Playgroud)

结果

List of devices attached
emulator-5554   device
Run Code Online (Sandbox Code Playgroud)

跑步 npx react-native start

结果:Metro JS 服务器启动

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

结果:运行Android

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

该应用程序在模拟器上正常打开(我初始化了一个新应用程序以确保该应用程序没有任何问题)运行Android的应用程序

但在 Metro 窗口上,它没有安装该应用程序,当我尝试重新加载时,它说它无法检测到任何正在运行的应用程序Metro 重新启动 我已经尝试过此处的解决方案,在不同的端口上运行它,但没有成功没有连接的应用程序。向所有 React Native 应用程序发送“重新加载”失败。确保您的应用程序正在模拟器中或通过 USB 连接的手机上运行

Dan*_*yan 6

解决方案:在不同的端口上运行 start Metro Server 和 run-android 命令。我怀疑 McAfee 使用默认端口 8081。

打开管理 CMD/Powershell 并运行以下命令:

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

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

打开另一个管理 CMD/Powershell 窗口并运行:

在同一端口上启动 android 构建/运行: npx react-native run-android --port=8090

最后一个命令还应该自动启动模拟器。

如果在执行 run-android 命令后 Metro 服务器出错,只需npx react-native start --port 8090在同一窗口中再次运行即可。


归档时间:

查看次数:

7460 次

最近记录:

4 年,2 月 前