android - 执行 getprop ro.build.version.release 等大多数命令时,ADB 不断崩溃
问题描述
我已经在我的 Windows 10 PC 和 Windows 7 笔记本电脑上安装了 ADB(带有 SDK 管理器),以便运行一些 appium 测试。但是,我无法继续进行测试,因为每当执行getprop ro.build.version.release 之类的命令时,ADB 都会不断崩溃(它实际上返回值然后崩溃)。打开设备监视器(如 scrcpy 或 appium studio)和更多操作也会出现同样的问题。
我能够成功执行adb devices。
我注意到,每当我先运行adb shell然后再运行getprop ro.build.version.release 时,它都会返回没有崩溃的值。
崩溃是指“ADB 停止工作”窗口。
我使用 Appium 1.9.1 ADB 版本 1.0.40 --4986621 SDK 管理器中的所有内容都是最新的
这是我尝试运行的 VS 测试的日志:
消息:测试方法 UnitTestProject1.UnitTest1.TestMethod1 抛出异常:System.InvalidOperationException:处理命令时发生未知的服务器端错误。原始错误:获取设备 API 级别时出错。原始错误:执行 adbExec 时出错。原始错误:'Command 'H:\SDK\platform-tools\adb.exe -P 5037 -s 520080e95a9c1549 shell getprop ro.build.version.sdk' exited with code 3221226356'; 标准错误:''; 代码:'3221226356'</p>
我想这可能是由我的防病毒软件引起的,但是我想听听任何其他建议,因为我无法真正更改 AV 设置(它是公司设备)。
[TestMethod]
public void TestMethod1()
{
DesiredCapabilities cap = new DesiredCapabilities();
cap.SetCapability("automationName", "Appium");
cap.SetCapability("platformName", "Android");
cap.SetCapability("platformVersion", "7.1.2");
cap.SetCapability("deviceName", "Redmi 5 Plus");
cap.SetCapability("udid", "07c92c189805");
cap.SetCapability("appPackage", "com.android.vending");
cap.SetCapability("appActivity", "com.android.vending.AssetBrowserActivity");
cap.SetCapability("noReset", "true");
driver = new AndroidDriver<IWebElement>(new Uri("http://127.0.0.2:4724/wd/hub"), cap);
Assert.IsNotNull(driver.Context);
}
解决方案
我在 Appium 桌面客户端和 java 自动化框架上遇到了同样的问题。在我的本地将 appium 降级到旧版本并使用低于 9 的 Android 版本有帮助。
推荐阅读
- c - 计算和打印矩阵的对角线之和
- javascript - 如何在 Angular 中使用 addEventListener 和 postMessage?
- php - 如何将日期、时间和值从单选按钮放入数据库
- c# - 逐个像素地动态绘制和显示,有一些延迟
- npm - 如何从 Nexus oss 代理获取依赖于 github 项目的 npm 包
- django - Django 测试 - 发送包含整数的数组数组
- android - 在 android 中使用改造登录
- json - 我如何在 nunjuncks 中乘以数据?
- swift - 为什么不能在swift中将可变参数标记为inout?
- vue.js - Vue Js 2 / Vue-CLI 3 / 托管时显示空白页