2024年4月5日发(作者:)
输入adbshell时提示error:
morethanonedeviceandemulato
第一种情况:确实用多个设备或者模拟器
解决办法:(指定连接某一个设备或者模拟器)
1、获取模拟器/设备列表
adb devices
2、指定device来执行adb shell
adb -s devicename shell
例如:
adb -s emulator-5554 shell
在多device的时候,执行adb命令一般都需要用参数-s指定
device。例如卸载emulator-5554上的包 adb -
s emulator-5554 uninstall
第二种情况下:确实有一个设备或者模拟器(之所以显示有多个
是因为此设备用过两次 使用命令 adb devices 会看到这个设备有两种
状:offline 和 device)
解决办法:
一般办法:在命令窗口输入
adb kill-server 停止服务
adb start-server 重新启动服务
如果上述方法不可以,终极方法:打开任务栏,选择“进程”选
项卡,找到进程,结束之,重新启动就完事OK啦(或者在
命令窗口输入命令adb kill-server )
以上办法还不行 ,继续:
现象:用adbdevices命令总发现emualtor-5554offline,重新
安装与adb相关的程序均无法消除此设备。
原因:有程序占用5555端口,导致adb认为5554不能作为第1
个设备启用
方法:
1. 用netstat –ano(即netstat -a –n –o),查看5555端口被哪
个PID占用。
2. 打开任务管理器,选择“进程”,在“查看”菜单打开“选
择列”,勾上PID。
3. 把进程按PID排序,找到PID对应的程序名。
4. 按文件名搜索程序所在的目录,确认后删除该程序。
5. 再运行adb devices,发现emualtor-5554 offline已消失。
CMD指令:
1、C:UsersWUKING>netstat -aon|findstr "5555"
TCP 127.0.0.1:1069 127.0.0.1:5555 ESTABLISHED
6692
TCP 127.0.0.1:5555 0.0.0.0:0 LISTENING 3
312
TCP 127.0.0.1:5555 127.0.0.1:1069 ESTABLISHED
3312
2、C:UsersWUKING>tasklist|findstr "3312"
3312 Services 0 3,720
K
这是那个Bluestacks的进程,电脑启动它就运行了
3、C:UsersWUKING>taskkill /f /t /im
成功: 已终止 PID 3312 (属于 PID 2064 子进程)的进程。
4、C:UsersWUKING>adb devices
List of devices attached
cb89741e device
再也没有恼火的emulator-5554 device出现了!!


发布评论