Metro Bundler localhost:8081无法连接Android模拟器求助
解决React Native项目模拟器已打开但未连接的问题
别着急,我帮你一步步排查和解决这个问题:
1. 先确认ADB与模拟器的连接状态
首先得确保你的Android模拟器和ADB(Android Debug Bridge)真的连上了。打开终端执行:adb devices
- 如果输出里看不到你的模拟器设备,说明连接出问题了,先重启ADB试试:
adb kill-serveradb start-server - 执行完再跑一遍
adb devices,要是还是没显示模拟器,直接重启模拟器就行。
2. 检查启动命令是否正确
你提到运行的是react-native start android?这个命令不对哦!正确的启动Android项目的命令应该是:npx react-native run-androidreact-native start只是启动Metro打包器,不会自动把APP安装运行到模拟器上。你可以先单独启动Metro(或者让run-android命令自动帮你启动),然后用run-android来部署APP到模拟器。
3. 确保模拟器符合项目要求
这个项目基于React Navigation v5,检查你的模拟器:
- Android系统版本至少是API 21以上(这是React Native的最低要求)
- 模拟器要开启USB调试模式:进入设置→关于手机→连续点击版本号开启开发者选项,然后在开发者选项里打开USB调试(别觉得模拟器不需要,有些环境下必须开)
4. 清理缓存后重试
有时候缓存会导致奇怪的连接问题,试试清理这些缓存:
- 清理Metro缓存:
npx react-native start --reset-cache - 清理Android构建缓存:进入项目的
android目录,执行./gradlew clean(Windows的话用gradlew clean)
清理完之后再重新运行npx react-native run-android
5. 检查8081端口是否被占用
Metro打包器默认用8081端口,如果这个端口被其他进程占用了,也会导致连接失败。
- Mac/Linux用户执行:
lsof -i :8081 - Windows用户执行:
netstat -ano | findstr :8081
如果查到有进程占用,杀掉对应的进程,然后重新启动Metro和项目。
按照这些步骤一步步来,应该就能解决模拟器未连接的问题啦!
内容的提问来源于stack exchange,提问作者sal abb
相关产品推荐
相关产品推荐

