使用adb 一段时间后,经常发生ADB server didn’t ACK 错误,导致终端与PC的桥断了。很烦人的一个故障。
在这儿根据网络提供的各种方法做个总结:
故障问题
C:\Users\temp>adb devices
* daemon not running. starting it now on port 5037 *
ADB server didn’t ACK
* failed to start daemon *
error: cannot connect to daemon
解决方法:
查看端口绑定信息,确定 adb 使用的是“5037”端口
C:\Users\temp>adb nodaemon server
cannot bind ‘tcp:5037’查看端口号中包含“5037” 端口的占用情况:
C:\Users\temp>netstat -ano | findstr “5037”
协议 本地地址 外部地址 状态 PID
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 3204
TCP 127.0.0.1:5037 127.0.0.1:59623 ESTABLISHED 3204
TCP 127.0.0.1:59623 127.0.0.1:5037 ESTABLISHED 6628从第3步中,查处 “5037”端口被 3204 端口占用,使用 下面命令查看3204端口具体是被哪一个线程占用。
C:\Users\temp>tasklist | findstr “3204”
adb.exe 3204 Console 1 13,160 K
C:\Users\temp>tasklist | findstr “6628”
java.exe 6628 Console 1 97,088 K这时候我们找到了 5037 端口被 3204 进程占用。所以杀死3024 进程。
C:\Users\temp>TASKKILL /F /IM adb.exe /T
成功: 已终止 PID 3204 (属于 PID 5920 子进程)的进程。
成功: 已终止 PID 9772 (属于 PID 9660 子进程)的进程。
附加信息:
C:\Users\temp>tasklist /fi “pid eq 784”
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
lsass.exe 784 Services 0 60,528 K