AirtestProject poco 不断重启?看这 6 点就够了

fishfish-yu · 2021年09月30日 · 6034 次阅读

此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

1. 前言

经常有同学会遇到 poco 不断重启的问题,但是又不知道如何处理,所以今天我们就来详细聊一聊 “poco 重启” 这个话题。

2. poco 重启的表现

首先,poco 重启的表现是非常明显的,设备屏幕会一直闪烁;或者设备画面底部会出现一个提示: pocoservice:poco service is running one ,并且我们还可以看到 log 里面会重复刷下述的日志:

3. poco 重启的常规原因及解决方案

那 poco 重启可能是有哪些原因导致的呢?我们来详细看下:

1)未设置 允许自动启动、允许后台运行

这是 “最最最” 常见的 1 个原因,所以放在第一位来说。在许多品牌手机上,我们都需要检查系统设置中,是否有 电池优化相关 或者 后台活跃相关 的选项,并将 PocoService.apk 设为允许自动启动、允许后台运行,否则就非常容易出现 poco 无限重启的问题。

这里我们列举几个常见手机品牌的设置方式:

  • 华为:手机管家 - 应用启动管理-PocoService.apk-手动管理,允许自启动开启,允许后台活动开启
  • OPPO:设置 - 电池 - 应用耗电管理-PocoService.apk-允许应用自启动,允许完全后台行为
  • VIVO:电池 - 后台高耗电-> PocoService 开启
  • 一加:设置 - 电池优化-PocoService-不优化

当然,不同手机品牌,甚至同品牌不同型号手机的配置方式,都有可能不大一样,同学们要自己查找手机里面与 电池优化后台活跃 相关的设置即可,保证给 pocoservice.apk 足够的活跃权限且不被电池优化行为干掉。

2)电脑或者手机上设置了网络代理

网络代理会影响 pocoservice.apk 的启动,所以我们务必关闭 PC 或手机上连接的网络代理 Proxy 。

3)与 uiautomator 同时启动

pocoservice.apk 不能和 uiautomator 同时启动,否则会相互冲突。

4)Android 版本过低

Poco 支持 Android SDK API ≥ 19,即 Android 4.4 及以上,如果 Android 版本过低,可能影响 pocoservice.apk 的正常运行。

5)重启/重装

如果上述原因都排除之后,仍然无法解决 pocoservice.apk 重启的问题;我们可以尝试 重启手机 ;或者卸载掉手机里面的 2 个 poco 相关的 apk,再从最新的 IDE 版本或者 pocoui 库里面找到最新的 pocoservice 的 apk,重新安装 到我们的手机上。

需要注意的是,使用 1.2.11 及更低版本的 AirtestIDE(及 1.0.83 及更低版本的 pocoui),poco 相关的 apk 包含 2 个,所以如果是安装的这些版本的 poco apk,我们需要卸载/重装 2 个 apk,其中 1 个是 pocoservice.apk,它会在我们的手机界面上出现 1 个图标:

另外一个是只有几 K 的 apk,它在手机桌面上不会出现图标,我们可以在应用列表中找到它:

但对于新发布的 1.2.12 版本的 IDE(及 1.0.84 版本的 pocoui),已经将 2 个 apk 合二为一,大大简化了安装流程,同学们只需要安装/卸载 1 个 pocoservice.apk 即可。

举个例子,如同学们之前使用的是 1.2.11 或者更低版本 IDE 安装的 pocoservice.apk ,想要升级到 1.2.12 版本的 pocoservice.apk ,只需要卸载手机桌面上带图标的那个 pocoservice.apk 即可,在 1.2.12 版本的 IDE 选择 Android poco,将会在我们的手机上安装最新版本的 pocoservice.apk(只会安装 1 个,仅需安装 1 次)。

3. 与 IDE 版本相关的 poco 重启问题

1)使用 1.2.12 版本的 IDE 但设置的 Python 环境里 pocoui 不是最新版

如果同学们使用了最新版的 IDE1.2.12 版本来查看设备的控件树(即设备安装了 1.2.12 里面的最新的 pocoservice.apk ),但是 IDE 却设置了本地 Python 环境,且该 Python 环境的 pocoui 并未更新到最新版(即 1.0.84 版本),则在运行脚本时,poco 会出现不断重启的情况。

解决办法是将 IDE 设置的本地 Python 环境里面的 pocoui 更新至最新的 1.0.84 版本:

pip install -U pocoui

意思是,如果同学们的设备安装了最新版的 pocoservice.apk ,在 IDE 上查看控件树就必须使用最新版的 IDE,即 1.2.12;运行 poco 脚本时,运行环境里面的 pocoui也必须是最新版,即 1.0.84 版本。

2)1.2.11 版本的 pocoservice 不支持在低版本 Android 使用

1.2.11 版本 IDE 里面的 pocoservice 升级后,兼容了一些 H5 页面的控件识别,但 在部分低版本 Android 设备不能正常安装使用(常见于模拟器,因为模拟器的 Android 版本一般较低)。

或者在低版本 Android 设备成功安装后,使用时发现 poco 一直在重启。

这时同学们可以卸载该版本安装的 2 个 pocoservice.apk,然后安装比 1.2.11 版本更低版本 IDE 的 2 个 poco apk 使用。

但更好的方式是,卸载之后,安装我们最新发布的 1.2.12 版本 IDE 里面的 pocoservice.apk 使用,仅需要安装 1 个 apk 即可。

3)1.2.11 及旧版本在高版本 Android 上弹出版本过低提示

1.2.11 及更低版本 IDE 里面的 pocoservice.apk ,在高版本 Android 设备上启动时,会提示 “此应用专为旧版 Android 打造......”:

除了点击确定之外,还可以下载我们最新发布的 1.2.12 版本的 IDE,安装里面最新版本的 pocoservice.apk ,在高版本 Android 设备上将不会再出现这个版本过低的提示。

4. 小结

最后,附上 poco 重启排查的思维导图,有需要的同学可以收藏起来哦:


Airtest 官网https://airtest.netease.com/
Airtest 教程官网https://airtest.doc.io.netease.com/
搭建企业私有云服务https://airlab.163.com/b2b

官方答疑 Q 群:654700783

呀~这么认真都看到这里啦,帮忙点击左下角的爱心,给我点个赞支持一下把,灰常感谢~

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册