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
第三个 Powershell 窗口运行:npx react-native run-android
结果:运行Android
我将它启动自己的 JS 服务器的行框起来,而不是使用打开的服务器。
该应用程序在模拟器上正常打开(我初始化了一个新应用程序以确保该应用程序没有任何问题)运行Android的应用程序
但在 Metro 窗口上,它没有安装该应用程序,当我尝试重新加载时,它说它无法检测到任何正在运行的应用程序Metro 重新启动 我已经尝试过此处的解决方案,在不同的端口上运行它,但没有成功没有连接的应用程序。向所有 React Native 应用程序发送“重新加载”失败。确保您的应用程序正在模拟器中或通过 USB 连接的手机上运行
解决方案:在不同的端口上运行 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 次 |
| 最近记录: |