当我们进行android开发的过程中,我们会遭遇到一些问题,而有些问题是通用的,使用网上的方法可以解决大部分问题。但是,有一些问题使用网上的解决方案并不能解决。昨天我就碰到了一个。
昨天程序调试过程中,由于一直很卡顿,所以当时就直接强制退出了android studio。结果就头大了,再也没有办法进行真机调试。设备也就无法被识别出来,一般而言我们处理的方法无非是以下几种。
重启手机或电脑,可能是哪个进程占用了端口导致了这个现象,结果依然无法识别。
重新安装手机的驱动程序,可能是驱动程序出现了问题,结果也依然没有用。
端口被某些程序占用,导致无法启用端口,现象如图所示:
,这个时候解决方法一般是将占用5037端口的进程找出,并杀死该进程。即可解决。
但是,如果检测出来占用这个端口号的进程就是adb.exe,这就不能解决问题了。这个是用我们可以试一下adb devices,检测adb.exe所连接的设备详细信息。由于我们设备没有被识别出来,而此时发现了一个模拟设备处于adb.exe的设备列表中。
这个时候,我们应该能够知道一点了,可能是模拟设备占用了真机调试所需要的端口,从而导致无论怎么处理,adb都无法调试真机。我们除了需要将android中的模拟设备删除,同时需要在属性-->管理中,删除模拟设备的接口。如图所示
而我们的真实设备处于便携设备一项中。如图所示:
所以,应该是上图中的Android Phone中的模拟设备抢占了端口,将该端口删除,即可联调真机。
特别说明:由于没有找到删除模拟设备接口前的截图,故上述图中为删除了模拟设备接口之后的截图,而非删除前截图。
重新运行测试一下,如图所示:
真机能够联调。