Expo报错:运行adb提示多设备/模拟器的解决问询
解决离线Android模拟器残留与Expo多设备冲突问题
我之前也碰到过macOS上adb残留离线模拟器的情况,挺闹心的,给你两种可行的解决思路:
方法一:彻底清除离线的模拟器设备
如果那个emulator-5562是无效的残留设备,咱们可以从根源清除:
- 强制终止所有adb进程
光用adb kill-server可能不够,得手动杀掉adb相关进程:# 查找adb进程PID ps aux | grep adb # 杀掉找到的PID,替换成你查到的数字 kill -9 <adb进程PID> - 清理adb临时缓存文件
macOS上adb的临时socket文件存在/tmp目录,删除这些文件能清除设备缓存:rm -rf /tmp/adb* - 删除对应AVD的配置文件
打开Android Studio的AVD Manager,看看有没有和emulator-5562对应的模拟器实例,如果有直接点击「Delete」删除。如果AVD Manager里看不到,手动去配置目录删除:# 进入AVD配置目录 cd ~/.android/avd/ # 找到对应离线设备的文件夹(格式为<模拟器名称>.avd和<模拟器名称>.ini),删除它们 rm -rf <对应模拟器名称>.avd <对应模拟器名称>.ini - 重启adb服务
这时候再运行adb start-serveradb devices,应该就看不到那个离线的emulator-5562了。
方法二:指定Expo使用特定的运行中模拟器
如果不想折腾删除离线设备,直接让Expo指定用正常运行的模拟器就行:
- 先通过
adb devices拿到正常模拟器的ID,比如你这里的emulator-5554 - 启动Expo时直接指定设备:
expo start --device emulator-5554 - 或者启动Expo后(终端显示二维码的状态),按键盘上的
a键,终端会列出所有可用设备,你选择对应的emulator-5554即可。
内容的提问来源于stack exchange,提问作者Alex Warren
相关产品推荐
相关产品推荐

