adb server is out of date. killing解決方法

adb server is out of date.  killing完美解決   

 

今天,久未出現的著名的「adb server is out of date.  killing」又發生了,在此,將解決方法記下,以便往後查看。html

鏈接usb後重啓adb-server:android

      adb kill-servershell

      adb start-serverwindows

      adb devicestcp

1. 錯誤信息:源碼分析

C:\Users\lizy>adb devices網站

adb devicesadb server is out of date.  killing...google

ADB server didn't ACK* failed to start daemon *error: unknown host servicespa

 

2. 緣由:.net

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 

 

 

 

 

運行adb shell命令出錯怎麼辦

  •  

  •  

運行adb shell提示「adb server is out of date」怎麼辦呢?一般致使此類狀況產生的重要緣由是因爲端口被佔用所形成的。對應的解決方法以下。

運行adb shell命令出錯怎麼辦

方法/步驟

  1. 1

    在使用ADB命令前,首先必須確保電腦安裝了手機或平板電腦的驅動程序,能夠從對應官方網站下載與手機類型相匹配的驅動,也能夠經過刷機精靈來安裝手機驅動 。

    運行adb shell命令出錯怎麼辦

  2. 2

    當運行「adb shell「命令出現「adb server is out of date,killing...」提示時,能夠先執行「adb nodaemon server」來查看「adb server」端口的信息。如圖所示:

    運行adb shell命令出錯怎麼辦

  3. 3

    待獲得「ADB Server」端口信息後,執行「netstat -ano | findstr "5037"命令,其中「5037」爲「ADB Server」端口號。

    運行adb shell命令出錯怎麼辦

  4. 4

    從返回的結果列表中找到「TCP」項右側的數字,如圖所示爲「5240」。此序號即爲當前佔用「ADB Server」端口的進程號,咱們須要停止此進程。

    運行adb shell命令出錯怎麼辦

  5. 5

    執行命令「tskill 5240"便可停止佔用「ADB Server」端口的進程號。如圖所示:

    運行adb shell命令出錯怎麼辦

  6. 6

    最後再次執行「ADB Shell」命令,就能夠正常進入Shell管理操做模式啦。

    運行adb shell命令出錯怎麼辦

 

 

 

在cmd裏面運行adb命令的時候提示:adb server is out of date.  killing...  

 

出現這個緣由從下面兩個步驟進行:

1. 在任務管理器裏面kill掉adb.ext進程。

2. 幹掉豌豆夾進程(名字裏面有wandoujia的)、幹掉迅雷手機的進程(ThunderMobile.exe)、幹掉360手機助手進程。總之,幹掉一 切會鏈接手機的各類助手。我是在任務管理器裏面找了很久才找到ThunderMobile.exe這個進程,幹掉以後,再幹掉adb.exe,就能夠正常 運行adb命令了。

不少**手機助手都會劫持adb.exe進程,達到跟手機通信的目的,對於Android開發者會形成很大的不便。並且你永遠不知道哪一個應用程序會偷偷的增長跟手機通信的功能(好比蛋疼的ThunderMobile)。

 

2014.03.14(add)。發現一個更好的解決方案,見下文。

 

 

轉載請註明出處http://blog.csdn.net/xiaanming/article/details/9401981

ADB server didn't ACK 這個問題會困惱不少的新手朋友,我之前剛開始作Android的時候也遇到過這個問題,不過本身百度,google啥的,也不知道怎麼就給解決了,看到羣 裏不少新手朋友都會問這個問題,說實話我也沒有一個解決這個問題的終極方法(百試百靈的那種,哈哈),本身沒遇到也沒有認真的去對待他,今天,就是在今 天,我打開Eclipse連上手機,準備調試程序,出現以下的信息

 

[plain] view plaincopy在CODE上查看代碼片派生到個人代碼片

  1. The connection to adb is down, and a severe error has occured.   

  2. You must restart adb and Eclipse.   

  3. Please ensure that adb is correctly located at 'D:\android-2.2-windows\platform-tools\adb.exe' and can be executed.  

而後我就按照 他的要求來作,重啓Eclipse和adb,而後確認adb的路徑是否正確,而後當我再次運行程序的時候,依舊不行,以後我就開始百度了,有朋友說先在 DOS下運行adb kill-server(你必須在環境變量中配好你adb的路徑或者進入到adb.exe的目錄下),而後在adb start-server,當我運行adb start-server的時候,DOS出現以下信息

 

 

[plain] view plaincopy在CODE上查看代碼片派生到個人代碼片

  1. * daemon not running. starting it now *   

  2. ADB server didn't ACK   

  3. * failed to start daemon *   

而後在運行程 序仍是不行,重複搞了不少次老不行,還有朋友說在任務管理器找到adb.exe,而後關閉,重啓Eclipse,我打開任務管理器,發現根本沒有找到 adb.exe,這時候我流淚滿面了,而後我冷靜下來,知道有些朋友遇到這個錯誤是由於豌豆莢啥的軟件佔用了adb.exe的端口,個人電腦裏面根本沒有 安裝豌豆莢,而後我想看看是誰佔用adb的端口,我從網上查到adb.exe使用的端口是5037,接下來我給你們介紹解決方法

 

 

  • 查看5037端口被誰佔用了,開始--運行--CMD 到命令提示符,輸入 netstat -aon|findstr "5037",以下圖                                                                          

  • 咱們從上面根本就看不出5037端口被誰佔用,咱們須要根據後面的PID(2748)來查找佔用該端口的應用程序,輸入 tasklist|findstr "2748" ,以下圖                                                                                                                                                                                                                                                                                                      注: 我這裏5037端口是正確的被adb.exe佔用,若是是你,就是其餘的應用程序啦

  • 結束該進程,輸入taskkill /f /t /im 你的進程名,例如adb.exe,以下圖,在從新鏈接手機,這時候你會發現程序運行起來了                                    

這個問題雖然不是什麼很大的問題,可是對於新手來講也是屬於比較棘手的問題,因此我將本身解決此問題的方法在這裏記錄下,但願能給遇到此問題的人一點點幫助,若是我寫得文章對你一點幫助請幫我頂一下文章,謝謝!

相關文章
相關標籤/搜索