React Native执行run-android无法识别已运行Metro Server且无法快速刷新
React Native安卓调试Metro服务无法复用、Fast Refresh失效问题
问题表现
未做任何项目改动的情况下相关功能突然失效:
- 已经通过
npx react-native start提前启动Metro服务,但运行npx react-native run-android时会重新启动独立的Metro Server - 仅能完成Debug构建包的安装,无法使用*快速刷新(Fast Refresh)*功能,无法正常开展开发工作
原有正常调试流程
此前安卓端调试可正常运行,流程如下:
- 第一个Powershell窗口启动安卓模拟器
- 第二个Powershell窗口执行
npx react-native start启动Metro Server - 第三个Powershell窗口执行
npx react-native run-android,构建完成后会自动将应用关联到已运行的Metro Server再推送到模拟器 - 代码修改后可直接在模拟器/真机上触发快速刷新,运行日志也会统一输出到Metro Server窗口
环境版本信息
在项目根目录执行命令获取版本如下:
npx react-native --version:6.0.0npx --version:7.18.1
复现步骤
- 第一个Powershell窗口执行命令启动模拟器:
emulator -avd Galaxy_Nexus_Android9 -no-snapshot
- 第二个Powershell窗口先确认adb设备连接正常,执行:
adb devices
返回结果确认设备在线:
List of devices attached emulator-5554 device
随后执行npx react-native start启动Metro服务
3. 第三个Powershell窗口执行命令启动安卓构建:
npx react-native run-android
异常现象
- 构建过程中会自动拉起新的独立JS服务,不会复用已提前启动的Metro服务
- 应用可在模拟器正常打开,已验证初始化的新项目也存在相同问题,排除应用本身逻辑故障
- 提前启动的Metro窗口无法识别到已运行的应用,手动触发刷新时提示无法检测到任何运行中的应用,快速刷新功能完全不可用
已尝试的无效解决方案
- 修复assets目录下index.android.bundle缺失的相关方案
- 更换Metro服务端口的相关方案
内容的提问来源于stack exchange,提问作者Daniel Avetyan
相关产品推荐
相关产品推荐

