在win xp ,win 7 上使用adb時, 越來越多的人出現了 adb devices 指令長時間無響應、adb start-server 失敗、eclipse adt初始化時卡在dbms-init上等現象。
它們的根本原因均在于,adb server所使用的5037号端口被占用。
一種常見的解決方法是:找出占用5037端口的程式,然後殺掉它。
使用:netstat -aon | findstr 127.0.0.1:5037 來找到占用5037的程序id。
使用:kill -f pid 去殺掉它們。(或者在任務管理器 -程序中,結束程序。ps:需要事先在 windows任務管理器-檢視-選擇列,勾選pid)
我查詢了機器上占用5037的程序,是系統svhost,它是一個service host,具體裡面跑的什麼服務則不得而知。但服務程序每一次開機都會運作。
是以,上述的方法在每次開機都要做一遍,麻煩。是以,這個方法并不是最優解。
另一種方法:
自己配置 adb server 端口,使用一個生僻的值。
很簡單,隻要在系統環境變量中定義 android_adb_server_port 的值即可。
最好選擇一個5位數的端口号(10000 ~ 65535),不易重複。
win下隻要在環境變量中增加一個android_adb_server_port ,值填你自己定義的端口。
linux下隻要 export $android_adb_server_port = 自定義端口,即可。
這時打開一個指令行,輸入adb devices,看看是不是在新的端口上啟動了啊?