最近在windows下使用adb device时,提示“ADB server didn't ACK” & “error: unknown host service”错误。
网上搜索了下,是说adb所要用的5037端口被占用了。该问题如何解决的在这边做下备份。
Step1:在控制台中输入“netstat -ano | findstr "5037”命令来确认当前5037端口被哪个PID占用了。输出如下:
C:\Desktop\ADB>netstat -ano | findstr ""
TCP 127.0.0.1: 0.0.0.0: LISTENING
可以看到当前5037端口正在LISTENING PID为13600的进程,现在再判断13600这个进程是做什么的。
Step2:调用“tasklist /fi "pid eq 13600"”命令来确定进程,结果如下:
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
sjk_daemon.exe Console , K
可以看出13600这个进程对应到“sjk_daemon.exe”这个可执行程式,并不是我们需要的“adb.exe”,网上搜索了下这个可执行程式,说是金山毒霸开启的。既然知道做个可执行程式不影响我们adb的操作,那么下面就需要Kill这个进程。
Step3:使用“tskill 13600”命令来kill掉13600这个PID,然后再输入adb devices来确认是否可以认到。
PS:其实本地遇到该问题时,当Kill掉13600这个PID后,adb devices还是会提示“unknown host serivice”,再次确认5037端口状态,原来该端口又被另一个进程14188占用了。重复上面的3步骤后,adb devices终于可以认到。