Android ADB 5037端口被佔用問題(adb server is out of date. killing...)

      寫在前面:使用Airtest之前確保以下軟件安裝和環境配置:安裝JDK、ADB;安裝Python環境(建議安裝Python3);安裝Airtest。
      保證手機開發者模式設置無誤,在Airtest查找不到設備、offline 表示設備未連接成功或無響應、List of devices attached 設備/模擬器未連接到 adb 或無響應等情況下,可自查是否是因爲adb端口被佔用了。在cmd命令窗口執行   adb devices  查看電腦上連接的設備,正常情況下應該列出具體的設備,adb端口被佔用情況下,則會提示adb server is out of date.  killing...   

     

     本文提供兩種解決方法:1.殺死佔用adb端口的進程;2.永久解決adb端口被佔用的問題,爲adb規定新的端口。

一、殺死佔用adb端口的進程

  1. 在cmd命令窗口執行  adb nodaemon server  查看adb端口號,一般情況下是“5037”;
  2. 繼續執行  netstat -ano | findstr “5037”  查看佔用了5037端口的進程,下圖中18296爲該進程的標識符(PID);
  3. 接下來執行 taskkill -f -pid XXX  以殺死佔據了5037端口的進程;

        

     4.此時再次執行   adb devices  ,可以看見電腦上連接的設備;

        

  二、爲adb規定新的端口 

      由於“5037”爲較常用端口,因而會經常性出現該端口被佔用的情況,爲了一勞永逸徹底解決adb端口被佔用的問題,爲adb規定一個新的、不常用端口不失爲一個好辦法。

     對於端口號,網上簡單找了資料:0-1023是公認端口號,即已經公認定義或爲將要公認定義的軟件保留的,而1024-65535是並沒有公共定義的端口號,用戶可以自己定義這些端口的作用。我們替adb規定一個較爲複雜的端口如五位端口號“65535”,操作如下:

     1.在桌面“此電腦”鼠標右鍵【屬性->高級系統設置->環境變量】,新建系統變量

變量名:ANDROID_ADB_SERVER_PORT

變量值:65535(可自行定義,複雜一些的端口號不容易被其他程序佔用或發生衝突)

 

      2.驗證adb端口號是否已改變:殺死adb  adb kill-server ,執行 adb devices  可見端口號已改變(如果沒有改變可以重啓電腦)。

 

   

 

        

 

 

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章