Android之debug运行调试发现有多个设备
最近在运行Android工程时,明明只连接了一台设备,但弹出的列表却提示存在多台可运行设备:
为什么会无端端多了三个设备呢?设备名称是 ip + port 方式组成的。选前面三个中任意一个去运行,
提示adb需要重启,按照restart 操作后依旧重复提示上述内容。
换了台电脑测试,并没有发现这个问题。
在经历过重启adb、重启设备、重启电脑无果后,考虑到有可能是SDK 版本过新导致的,于是尝试对SDK 版本降级,操作如下:
重新验证,没起作用。
于是再把未知设备断开试试:
关闭Android Studio 后,再用cmd命令验证未知设备的状态:
发现断开的未知设备状态虽为offline,但还是卸载不了,还可以被识别。
于是又尝试了几个可能性:未知设备会不会是已知设备上的蓝牙、WIFI 模块?在关闭后重新验证,依旧无果。那会不会是电脑上的未知设备呢?于是把电脑上的设备管理器的打印机、蓝牙、各种没用到的硬件都禁用,无果!再把系统服务中的各种device 选择禁用,无果!打开设备工程模式、开发者模式排查,无果!
有人说:不用纠结啦,能用就行了,反正不影响正常调试。可我想说:做技术的,不就是讲究个刨根问底吗?我还真不信这个邪,跟它杠上了!
于是随手一拔,把USB数据线扯开,打开了Android Studio,开始了茫茫思索……
随意点击debug 按钮,弹出熟悉的界面:
咦,没连设备,怎么会有未知设备呢?不管什么原因,却很明显排除了是设备原因。
没有设备因素的干扰,这下感觉好处理多了!!!
通过一顿尝试,最后把电脑WLAN 关闭,期待的一幕终于出现了:只显示了一个设备!
问题就出在WLAN 网卡上!
原因分析:为什么关闭网络就能够正确显示呢?后来经过排查,原来这几个未知设备,并非源自设备内部硬件,而是局域网内其他的测试机器;至于adb 不断提示重启,原因在于debug 远程设备出错了。那为什么另外一台电脑连接显示正常呢?那是因为它与这几台测试设备连接的不是同一个无线网络。
总结:之前设备debug调试时,碰到过的都是这样情况:一个设备内置多个硬件,所以在列表中显示了未知设备。所以一直按这个惯性思维去进行分析问题,以为未知设备源自移动设备的内部硬件。活到老,学到老,真心没错!
PS:随着窗外的烟花炮声响起,顺便祝各位新年快乐哈!