Airtest中的ADB版本冲突问题从而断开连接,提示adb server version (39) doesn‘t match this client (40); killing...

问题描述:
1、os.popen("adb connect "+device_num)连接后,通过airtest命令行运行脚本后,输入cmd,adb devices断开连接
adb devices显示无连接上
2、pycharm运行测试用例,报错
AdbError: stdout[List of devices attached
] stderr[adb server version (39) doesn’t match this client (40); killing…
could not read ok from ADB Server

  • failed to start daemon
    error: cannot connect to daemon
    ]
    在这里插入图片描述
    解决方案:
    是否已经安装了android-sdk-windows,双击“SDK Manager.exe”,启动SDK Manager,如果屏幕出现黑框一闪而过,排查下是否安装了jdk
    安装jdk步骤
    在这里插入图片描述
    在这里插入图片描述
    a、系统变量→寻找 Path 变量→编辑

在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)
b、系统变量→新建 CLASSPATH 变量

变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)

系统变量配置完毕
在这里插入图片描述
安装Android SDK
在这里插入图片描述
在这里插入图片描述
[异常] Download interrupted: Connection to https://dl-ssl.google.com refused 安卓SDK下载被拒 3步解决
1、SDK Manager 的 Tools ->Options打开SDK Manager的Settings,选中“Force https://… sources to be fetched using http://…”,
强制使用http协议。
2、在 Windows在C:\WINDOWS\system32\drivers\etc目录下host文件添加:
#Google主页
  203.208.46.146 www.google.com
  #这行是为了方便打开Android开发官网 现在好像不翻墙也可以打开
  74.125.113.121 developer.android.com
  #更新的内容从以下地址下载
  203.208.46.146 dl.google.com
  203.208.46.146 dl-ssl.google.com
3、重启,一定要重启SDK Mannger
在这里插入图片描述
然后就是在系统的Path变量后,追加;%ANDROID_SDK_HOME%\platform-tools;%ANDROID_SDK_HOME%\tools
在这里插入图片描述

1、更新python环境的airtest到最新
pip install -U airtest

2、更新了之后,通过命令行运行脚本无效果:
解决方案:
替换掉本地所有的adb.exe,统一成同一个版本(哪怕不是最新的40也可以,只要是同一个版本)
AirtestIDE 1.1.0版本上的adb版本已经更新到40,使用pip安装的airtest、pocoui库里的adb,以及本地的adb.exe通过以下命令可以查看本地adb在哪查看本地adb安装目录
博主是把本地的adb.exe复制到airtestIde(IDE中的adb.exe路径在 AirtestIDE/airtest/core/android/static/adb/windows/adb.exe)、和airtest库(本地python环境下安装的airtest(目录一般为python目录下的 Lib\site-packages\airtest )里的adb.exe,airtest中的路径为 airtest/core/android/static/adb/windows/adb.exe)、(以及夜神模拟器-将SDK\platform-tools下的adb.exe文件,替换成夜神模拟器bin目录下的adb.exe 将SDK\platform-tools下的adb.exe,copy出来重命名为nox_adb.exe,替换成夜神模拟器bin目录下的 nox_adb.exe)里:
统一版本,避免冲突
win7用户请尽量统一选用ADB39版本,我们在IDE文件夹中提供了一个, AirtestIDE/tools/adb39/adb.exe ,将它作为基准版本覆盖掉别的地方的adb即可
win10用户可以直接拷贝IDE里的 AirtestIDE/airtest/core/android/static/adb/windows/adb.exe ,这是一个40版本的adb
执行 adb.exe version 可以查看到版本号在这里插入图片描述
目的是:避免adb冲突,连接不上设备

回答: 报错信息 "adb server version (31) doesn&#39;t match this client (39); killing..." 表示adb服务器的版本与客户端的版本不匹配,导致连接失败。这可能是因为海马玩模拟器和Android SDKadb版本不一致所致。为了解决这个问题,你可以尝试以下几个步骤: 1. 检查海马玩模拟器的adb版本:打开海马玩模拟器的路径,查看对应的adb版本信息。确认与Android SDKadb版本是否一致。 2. 检查环境变量设置:确保你的系统环境变量指定了正确的adb路径。你可以查看PATH环境变量,并确认其指定的adb.exe路径是正确的。 3. 更新adb版本:如果海马玩模拟器的adb版本低于Android SDKadb版本,你可以尝试更新ADB。你可以在Android SDK Manager选择更新ADB工具。 4. 替换adb.exe文件:如果以上方法都无效,你可以尝试使用旧版的adb.exe文件替换Android SDKadb.exe文件。你可以找到以前的SDKadb.exe文件,并将其复制到sdk\platform-tools\目录下,覆盖原有的adb.exe文件。 请注意,在进行任何更改之前,建议先备份原有的adb.exe文件,以防止出现意外情况。希望这些方法能帮助你解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [解决:adb 提示adb server version(31) doesn&#39;t match this client(41) 解决办法](https://blog.csdn.net/gufenchen/article/details/91383397)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [adb server version (31) doesn&#39;t match this client](https://blog.csdn.net/qq_21406125/article/details/78803081)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值