adb shell提示「adb server is out of date.」 解決方法

【問題描述】html

一、打開運行:window+R,輸入cmd回車android

二、使用命令 adb shell 沒法登陸安卓設備,提示以下:shell

adb server is out of date.  killing...工具

* daemon started successfully *.net

** daemon still not running3d

error: cannot connect to daemonorm

三、使用 netstat 命令發現佔用 5037 端口的進程就是 adb.exe,用 taskkill 命令殺掉進程後,該進程會當即自動重啓並搶佔端口。server

【問題前提】htm

已配置AndroidSDK工具包adb,配置方法:http://jingyan.baidu.com/article/17bd8e52f514d985ab2bb800.html進程

【解決辦法】

方法一:(先嚐試關掉9一、360等手機助手)

一、在控制檯下查看 adb 工具要使用的端口號,命令爲adb nodaemon server

發現端口號是 5037,以下:

 
 

二、查找佔用該端口的進程,命令爲netstat -ano | find "5037"

發現是 PID 爲 6580 的進程佔用了 5037 端口,以下:

 
 

(補:cmd內容比較多不能查看上一頁,能夠定向導出文件,格式:XXX>>test.txt

如:netstat -ano | find "5037">>adbtest.txt,而後開始中搜索adbtest.txt,查看詳細文檔)

三、通常狀況下這時使用 taskkill /pid 6580 /f 命令就能夠殺掉進程釋放端口,但本文開篇說了這招沒起做用。因此這裏介紹一個更穩妥的辦法:

先打開任務管理器,找到 PID 爲 6580 的進程(若是沒看到 PID 這列信息,須要點擊 「查看 -> 選擇列 -> PID 進程標識符」),右鍵單擊進程名調出菜單,再單擊 「打開文件位置」。以下:

 
 

這時會跳轉到啓動該進程的可執行文件所在的文件夾(若是你對 cmd 命令比較熟悉的話,也可使用 wmic process 命令查看進程的路徑),發現是91助手佔了adb的窗口,我確實剛剛使用而且沒有關閉。由於他有守護進程存在,因此我使用 taskkill 命令殺死她啓動的 adb.exe 進程後,守護進程會當即檢測到並重啓進程。

關閉這個程序後,就又能正常在控制檯使用 adb 工具登陸設備了。以下:

 
 

相似的,端口占用也有多是你安裝的一些 手機助手類 的軟件致使的,好比 百度xx、騰訊xx、360xx 等。一樣,關掉相應主程序就能夠解除端口占用了。

方法二(沒有驗證):

修改 adb 工具的端口。新建一個名字爲ANDROID_ADB_SERVER_PORT的環境變量,她的值就是 adb 的端口,給她賦一個沒有被其餘程序使用的端口值,好比 12345。

做者:嗪小嗪 連接:https://www.jianshu.com/p/c76255fdaf5a 來源:簡書 簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。
相關文章
相關標籤/搜索