轉載:http://blog.csdn.net/liranke/article/details/45198865
1. 錯誤信息:
C:\Users\lizy>adb devices
adb devicesadb server is out of date. killing...
ADB server didn't ACK* failed to start daemon *error: unknown host service
2. 原因:
adb的端口(5037)被占用了。至於這個5037端口,可以參考本博客另外 一篇文章:
http://blog.csdn.net/liranke/article/details/4999210
在這個文章里,詳細說明了adb的原理及其源碼分析。
3. 解決方法:
在cmd窗口:
C:\Users\lizy>adb nodaemon server
cannot bind 'tcp:5037'
C:\Users\lizy>netstat -ano | findstr "5037"
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 8516
TCP 127.0.0.1:5037 127.0.0.1:59163 TIME_WAIT 0
TCP 127.0.0.1:5037 127.0.0.1:59164 TIME_WAIT 0
TCP 127.0.0.1:5037 127.0.0.1:59167 TIME_WAIT 0
......
C:\Users\lizy>tasklist | findstr "8516"
sjk_daemon 8516 Console 1 3,071 K
哦,原來是sjk_daemon進程占了adb的端口。
C:\Users\lizy>tasklist
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
System Idle Process 0 Services 0 24 K
System 4 Services 0 1,128 K
sjk_daemon 963 Console 1 3,071 K
tasklist.exe 1260 Console 1 5,856 K
將這個進程kill掉:
C:\Users\lizy>taskkill /f /pid 963
如果這個命令提示無權限,那么,可以去windows的“任務管理器”中“進程”那個窗口,找到這個進程,將它殺掉。
再運行adb devices,就沒有問題了。
C:\Users\lizy>adb devices
4df7f482396a301d device