最近在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 "5037" TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 13600
可以看到當前5037端口正在LISTENING PID為13600的進程,現在再判斷13600這個進程是做什么的。
Step2:調用“tasklist /fi "pid eq 13600"”命令來確定進程,結果如下:
映像名稱 PID 會話名 會話# 內存使用 ========================= ======== ================ =========== ============ sjk_daemon.exe 13600 Console 2 7,692 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終於可以認到。
