寫在前面:使用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端口的進程
- 在cmd命令窗口執行 adb nodaemon server 查看adb端口號,一般情況下是“5037”;
- 繼續執行 netstat -ano | findstr “5037” 查看佔用了5037端口的進程,下圖中18296爲該進程的標識符(PID);
- 接下來執行 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 可見端口號已改變(如果沒有改變可以重啓電腦)。