安卓 - adb 连接多个设备/模拟器

19
我有Genymotion模拟器和手机连接,我希望通过WiFi运行和调试我的应用程序。我找到了相关的指示,但是当我输入这段代码时出现了错误:

I genymotion emulator and my phone connected , I want to run and debug my application over wifi , I found the instruction to do so but I get this error when I enter this code :

adb tcpip 5555

我遇到了这个错误: error: more than one device/emulator

我该如何将我的设备设置为默认设备或类似的方式以解决这个问题?


1
你尝试过使用命令 'adb -s <设备ID> tcpip 5555' 吗?设备ID可以从adb devices命令中获取。 - Mohammad Tabbara
1
adb kill-server 可以解决离线模拟器的问题。 - Rohit Sharma
3个回答

43

根据文档,您可以向特定设备发送命令:


$ adb devices
List of devices attached
emulator-5554 device
emulator-5555 device

$ adb -s emulator-5555 do_your_command

此外,如果只有一个模拟器或实际设备,您可以附加-e-d并将命令发送给它:

如果有多个可用设备,但只有一个是模拟器,请使用-e选项将命令发送到模拟器。同样,如果有多个设备,但只连接了一个硬件设备,请使用-d选项将命令发送到该硬件设备。


由于某些原因,像这样的命令: adb shell -e emulator-5556 am broadcast android.intent.action.BOOT_COMPLETE 在连接两个模拟器时无法正常工作。不能同时使用BlueStacks和另一个模拟器。 - Michael Tolsma

12

以下是能够帮助您的步骤:

您之所以会收到此消息,是因为您已连接了多个设备。

运行以下命令:

adb devices

在执行上述命令后,您将获得设备列表。从列表中选择您的设备ID(不是模拟器),然后执行以下命令。

adb -s f725aa8b7ce4(deviceId) tcpip 5555

在这场火灾之后。
adb connect yourIp 5555

1

我在几个月之间一直苦恼于同一个问题,后来在 Postman 进行测试时,我发现"Appium inspector"是这个问题的主要原因。它会创建新的会话 ID 并中断正在运行的框架服务器。 因此,adb kill-server adb start-server可以解决这个问题,因为它实际上会终止由 Appium inspector 创建的会话 ID,并启动新的服务器。


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