无法登录Metro以连接模拟器,已尝试多种方案仍未解决
解决Metro无法登录并连接模拟器的问题
基础排查步骤
- 确认模拟器与开发设备处于同一局域网,关闭模拟器或设备上的代理、VPN,避免网络干扰。
- 重启核心服务:
- 彻底关闭Metro服务器和模拟器
- 清除Metro缓存:执行
npx react-native start --reset-cache - 重新启动模拟器,再启动Metro服务
- 检查端口占用:Metro默认使用8081端口,执行
lsof -i :8081(Mac/Linux)或netstat -ano | findstr :8081(Windows),杀死占用端口的进程后重试。
配置文件修正
- 重置
metro.config.js为默认配置(无需创建新目录):const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); const config = {}; module.exports = mergeConfig(getDefaultConfig(__dirname), config); - 验证
package.json启动命令正确性:"scripts": { "start": "react-native start", "android": "react-native run-android", "ios": "react-native run-ios" }
手动建立连接
- 模拟器中打开开发者菜单(Android:Ctrl+M;iOS:Cmd+D),选择**"Configure Bundler"**,输入开发设备的局域网IP地址与8081端口,保存后重新连接。
- Android设备执行端口映射:终端运行
adb reverse tcp:8081 tcp:8081,强制建立设备与Metro的端口关联。
环境依赖校验
- 确认Node.js版本为项目兼容的LTS版本(如18.x或20.x),版本不匹配时用nvm切换。
- 重新安装依赖:删除
node_modules和package-lock.json/yarn.lock,执行npm install或yarn install后重试。
内容的提问来源于stack exchange,提问作者Abdallah Rashid
相关产品推荐
相关产品推荐

