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出现了!!