Android之debug运行调试发现有多个设备

最近在运行Android工程时,明明只连接了一台设备,但弹出的列表却提示存在多台可运行设备:

Android之debug运行调试发现有多个设备

为什么会无端端多了三个设备呢?设备名称是 ip + port 方式组成的。选前面三个中任意一个去运行,
Android之debug运行调试发现有多个设备
提示adb需要重启,按照restart 操作后依旧重复提示上述内容。

换了台电脑测试,并没有发现这个问题。

在经历过重启adb、重启设备、重启电脑无果后,考虑到有可能是SDK 版本过新导致的,于是尝试对SDK 版本降级,操作如下:
Android之debug运行调试发现有多个设备
重新验证,没起作用。

于是再把未知设备断开试试:

Android之debug运行调试发现有多个设备

关闭Android Studio 后,再用cmd命令验证未知设备的状态:
Android之debug运行调试发现有多个设备
发现断开的未知设备状态虽为offline,但还是卸载不了,还可以被识别。

于是又尝试了几个可能性:未知设备会不会是已知设备上的蓝牙、WIFI 模块?在关闭后重新验证,依旧无果。那会不会是电脑上的未知设备呢?于是把电脑上的设备管理器的打印机、蓝牙、各种没用到的硬件都禁用,无果!再把系统服务中的各种device 选择禁用,无果!打开设备工程模式、开发者模式排查,无果!

有人说:不用纠结啦,能用就行了,反正不影响正常调试。可我想说:做技术的,不就是讲究个刨根问底吗?我还真不信这个邪,跟它杠上了!

于是随手一拔,把USB数据线扯开,打开了Android Studio,开始了茫茫思索……

随意点击debug 按钮,弹出熟悉的界面:

Android之debug运行调试发现有多个设备

咦,没连设备,怎么会有未知设备呢?不管什么原因,却很明显排除了是设备原因。
没有设备因素的干扰,这下感觉好处理多了!!!


通过一顿尝试,最后把电脑WLAN 关闭,期待的一幕终于出现了:只显示了一个设备!

问题就出在WLAN 网卡上!
原因分析:为什么关闭网络就能够正确显示呢?后来经过排查,原来这几个未知设备,并非源自设备内部硬件,而是局域网内其他的测试机器;至于adb 不断提示重启,原因在于debug 远程设备出错了。那为什么另外一台电脑连接显示正常呢?那是因为它与这几台测试设备连接的不是同一个无线网络。

总结:之前设备debug调试时,碰到过的都是这样情况:一个设备内置多个硬件,所以在列表中显示了未知设备。所以一直按这个惯性思维去进行分析问题,以为未知设备源自移动设备的内部硬件。活到老,学到老,真心没错!

PS:随着窗外的烟花炮声响起,顺便祝各位新年快乐哈!