1. 首先通過CMD啟動adb服務。這個時候會提示啟動失敗。
E:\android-SDK-4.2\android-sdk\platform-tools>adb start-server
adb server is out of date. killing... ADB server didn't ACK * failed to start daemon *
2. 服務啟動失敗的原因有很多,但一般是端口綁定失敗。我們來查看一下端口綁定信息。如圖所示,真的是端口綁定出了問題。
E:\android-SDK-4.2\android-sdk\platform-tools>adb nodaemon server cannot bind 'tcp:5037'
3. 我們來看看哪個服務占用了這個端口。這里面有2個進程占用了這個端口。
E:\android-SDK-4.2\android-sdk\platform-tools>netstat -ano | findstr "5037"
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 5456
TCP 127.0.0.1:5037 127.0.0.1:1221 TIME_WAIT 0
TCP 127.0.0.1:5037 127.0.0.1:1222 TIME_WAIT 0
解決方法:先找到adb服務是否綁定端口出現問題,如果真的是綁定端口出現問題,找出該端口被哪個進程占據,最后殺掉這個進程。
在控制台下殺死在5456端口監聽的進程
殺死造成問題的進程,再執行前面的命令
連不上手機時先查看端口是否能被綁定,使用cmd命令
adb nodaemon server
如果提示:
cannot bind 'tcp:5037'
是端口綁定失敗,則繼續查看到底是哪個端口給占用了
運行命令:netstat -ano | findstr "5037"
結果輸出:
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 8744
TCP 127.0.0.1:5037 127.0.0.1:51531 ESTABLISHED 8744
TCP 127.0.0.1:5037 127.0.0.1:52082 TIME_WAIT 0
...
說明當前端口被pid為8744的進程占用,運行tasklist 查看列表pid為8744的進程
或者直接運行taskkill /pid 8744 或者taskkill /im xxxx.exe
某些流氓軟件進程可能關不掉,可以直接卸載。。。
