写在前面:使用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 可见端口号已改变(如果没有改变可以重启电脑)。