最近几天电脑的上的模拟器老是连接不上,并且报出"ADB server didn't ack error"的异常,让我很是头痛,后来使用传统的方法解决这个问题,但是无效......下面就说说我最后的处理过程吧.
首先说明一点是adb是android debug bridge的简称,即android的调试桥,是沟通模拟器和eclipse的桥梁,默认端口是5037.
1,最开始接触android的时候由于模拟器不稳定,adb调试桥经常掉线,后来就使用eclipse上自带的一个按钮对adb进行重启即可.
2,经过一段时间后,发现使用方法1还是无法解决,于是就在cmd命令行中键入如下两个命令 adb kill-server 杀死adb,然后再键入 adb start-server,于是adb重启就可以了
3,后来又发现adb连接不上,使用方法1和方法2 问题还是解决不了,后来就在任务管理器中看看是不是有某些软件(例如,豌豆荚)自带的adb.exe启动而导致无法连接模拟器.
于是乎,就结束掉豌豆荚的wadb.exe,然后使用方法2的命令处理即可
4,可是最近又发现模拟器无法连接,使用上述的三种方法还是无法解决模拟器无法连接的问题,于是很是苦恼,上网翻资料,找到了两个比较使用的命令
adb nodaemon server这个命令可以显示adb无法连接的原因<是因为该端口是bind还是因为该端口established的....) 这时还可以使用这时候可以输入命令
netstat -ano | findstr "5037"来查看那个进程占用.
如果是bind的话,那说明adb默认的5037端口一定是被某个程序的adb.exe占用了,那就打开任务管理器,看看是那个进程,然后把它结束掉就行了,但是有的adb的名字没有那么明显,也就是进程的名字中没有包含"adb"的字符串,那么就看这些进程的描述,找到结束即可
我的最终解决的方法是:通过adb nodaemon server发现5037端口被"bind"(也即是5037端口已经被使用了),打开任务管理器,找启动的adb,但是由于金山手机助手的adb的名字
没有包含"adb"字样,所以很不容易找到,在不经意间发现进程的描述中发现某个进程描述为"kingsoft android debug bridge",于是果断的结束该进程,然后模拟器就连接了.
所以,一般模拟器连接不上,绝大部分是由于其他某些手机助手类软件启动了自身的adb,占用了端口5037,只要我们认真的看看任务管理器的进程和进程描述,然后把这个进程结束掉,问题就会解决的