Android ADB多设备/模拟器报错:如何指定默认设备实现WiFi调试?
解决ADB多设备冲突,指定实体手机执行调试命令的方法
别担心,这个问题在同时连接实体手机和模拟器时特别常见——ADB不知道该优先操作哪台设备,所以抛出了error: more than one device/emulator的报错。咱们一步步来搞定它:
第一步:先列出所有已连接的设备,确认实体手机的序列号
打开终端执行以下命令:adb devices
你会得到类似这样的输出(其中包含实体手机和Genymotion模拟器的信息):List of devices attached 89XYZ123 device # 这是你的实体手机的唯一序列号 emulator-5556 device # Genymotion模拟器的标识记下那串属于你实体手机的序列号(通常是一串字母数字组合,和模拟器的
emulator-xxxx标识区分开)。第二步:指定实体手机执行
tcpip命令
把原来的命令改成带设备序列号的形式,替换成你刚才记下的实体机序列号:adb -s 89XYZ123 tcpip 5555
这样ADB就会明确针对你的实体手机执行开启TCP调试端口的操作,不会再出现多设备冲突的问题。额外技巧:设置默认设备(免每次输入序列号)
如果你之后经常要针对这台实体手机操作,不想每次都加-s参数,可以设置环境变量让ADB默认指向它:
在终端执行:export ANDROID_SERIAL=89XYZ123
这个设置只在当前终端会话有效,如果想永久生效,可以把这条命令添加到你的shell配置文件里(比如~/.bashrc或~/.zshrc),保存后重启终端就可以啦。
内容的提问来源于stack exchange,提问作者Navid Abutorab




