多个设备/模拟器在使用React Native启动时出现错误

5
我启动了Genymotion,然后通过VS Code在我的React Native项目中执行npm start。我收到了以下信息:
>Press a to open android device or Emulator
>Press q to display QrCode
 .
 .

我按下了A键,但是出现了以下错误:

运行ADB时出错:存在多个设备/模拟器

我该怎么解决?我尝试使用 adb devices 命令查看我的设备列表,结果如下:

emulator-5562 host
emulator-5560 host
emulator-5558 host
192.168.X.X device

我的操作系统是Windows 10。我甚至无法启动我的React Native hellow-world应用。

编辑:我关闭了系统,在第二天一切都正常了。为什么?我再次使用命令 adb devices 检查设备,这次列表中只包括一个设备:192.168.X.X device。因此我们只能有一个模拟器设备,但是!!如何在adb中杀死所有设备,只保留一个呢?


@mjsameri 不,我不使用它。 - Iman Salehi
@mjsameri 没有,我没有听说过他们...没有。 - Iman Salehi
@mjsameri 是的,现在它可以在 Expo 上运行了。 - Iman Salehi
9个回答

17

尽管我只运行了一个Genymotion模拟器,但这种情况发生在我身上。问题出在我用电脑给手机充电时启用了USB调试。关闭手机的USB调试功能后,问题得到解决。


1
是的...这正是解决问题的方法...你要么关闭USB调试,要么断开连接到你的Mac的USB电缆。 - Frankrnz
1
不需要关闭adb.exe进程,伙计们。这是正确的答案。对于正确的信息加1。 - Fahad Javed

9
打开您的任务管理器,在后台进程中结束adb进程。

2

停止所有打开的设备和模拟器。 前往Android Studio > 工具 > AVD管理器 > 点击最右边的下拉菜单 > 点击“停止”。停止所有设备。 $ adb devices 应该只显示一个已连接的设备。(特别是在真实设备上运行而不是模拟器上运行时) 也关闭AVD管理器。 几乎不需要任何设置。


1
如果您不确定该怎么做,那么:
  1. 断开任何可能连接到计算机的手机。

  2. 关闭所有应用程序并重新启动计算机。

  3. 重新启动后,只打开一个来自Android Studio的模拟器。如果在真实设备上运行,请连接一个设备(并关闭模拟器)。

出现错误是因为Bundler检测到通过ADB连接的多个设备/模拟器。

** 扫描QR码以同时在多个设备上运行您的应用程序。


1
如果有人遇到这个问题...你也可以使用
react-native run-android --deviceId=<你想运行应用程序的设备ID>

你可以通过运行 adb devices 命令来获取设备的 Id,对吧? - mayid
@mayid 绝对没问题 - Pranjal Gore

1
使用React Native应用程序的Expo XDE出现相同错误。
尝试在测试设备上部署,同时充电手机。
解决方案:禁用第二个手机上的debug usb解决了问题(如错误日志所示)。

@对我来说它有效。我的物理设备连接到了我的笔记本电脑上,而在断开物理设备后一切都正常工作。 - MBehtemam

0
打开任务管理器,搜索adb.exe并关闭它,然后返回到控制台,按下a键,它就会工作。

exp


0

如果你无法停止单个模拟器,adb kill-server 可以相当可靠地停止所有模拟器。


0
类似的问题在我使用Flutter时也发生过。我尝试过使用USB和adb connect IP:Port两种方式连接我的设备。结果是,同一台设备以两种方式连接。当我执行了adb kill-server,拔掉了USB连接,然后仅通过IP连接时,问题得到了解决。希望对你有帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接