当前位置: 首页 > news >正文

【python-uiautomator2】手机上的ATX应用界面报错问题处理:无法提供服务,非am instrument启动

目录

一、前期准备

1.1 插入设备

1.2 安装atx-agent

二、解决报错:无法提供服务,非am instrument启动

2.1 出现报错

2.2 尝试解决

2.3 最终解决

三、开启ATX的悬浮窗权限


一、前期准备

1.1 插入设备

本地插入待执行设备,待执行设备需进行以下设置,先打开 设置-更多设置-开启开发者模式,找到设备的版本信息、或是安卓版本号、或是软件版本号,快速点击多次7次,就可以看到“已开启开发者模式”的提示。

返回“系统管理”,或是设置页面,就可以看到“开发者选项”,一般都在页面偏下的位置。

进入开发者选项,开启开发者选项开关。并在开发者选项里面打开:不锁定屏幕,USB调试,USB安装,USB调试(安全设置)。

1.2 安装atx-agent

首先设备连接到PC,并能够adb devices发现该设备。打开cmd,执行下面的命令会自动安装本库所需要的设备端程序,

python -m uiautomator2 init

最后提示success,代表atx-agent初始化成功,在手机桌面上显示应用ATX。

二、解决报错:无法提供服务,非am instrument启动

2.1 出现报错

ATX-Agent装好之后,开始在pyCharm中运行代码,但是程序出现报错。并且手机上ATX应用显示报错信息为“无法提供服务,非am instrument启动”。

2.2 尝试解决

网站找了各种方法比如加权限或者 点击atx app 里面的启动,

(1)打开cmd,运行如下命令

进入shell,停止ATX服务,在7912端口中启动ATX服务,让UIautomator2在后台运行服务。

(2)点击 atx app 启动 UIAUTOMATOR 一直点直到“正常服务模式”出现,但是我的需求是自动化开启模拟器然后自动化app, 这种方案不行。

(3)看到有位博主说去atx-agent官网,github源码介绍有这样一句,

博主博客:uiautomator2 无法连接 ATX-Agent-CSDN博客

官网地址:https://github.com/openatx/atx-agent

#停止已经运行的atx-agent并启动守护进程
# stop already running atx-agent and start daemon
$ adb shell /data/local/tmp/atx-agent server -d --stop

执行这个命令之后,在pyCharm重新运行代码,还是报错。

2.3 最终解决

(1)最后,我卸载并重新安装了uiatomator2第三方包,因为之前安装的uiatomator2包版本有点低,就想着重新安装一下,换个版本试试。

pip uninstall  uiautomator2
pip3 install  uiautomator2

(2)重新安装完成之后,新建一个py文件,通过运行代码来查看环境是否配置成功。

注意:在运行这段代码之前,需要确保 Android 设备已经通过 USB 连接到计算机,并且设备已经开启了 USB 调试模式。

import uiautomator2 as u2

d = u2.connect() # connect to device
print(d.info)

这行代码调用 uiautomator2 对象的 connect() 方法来尝试连接到一台 Android 设备,并将连接后的设备对象赋值给变量 driver 。connect() 方法默认会尝试连接通过 USB 连接到计算机的第一台 Android 设备。如果需要连接指定序列号的设备,可以在 connect 方法中传入设备序列号。

设备对象 driver 的 info 属性,该属性包含了设备的各种信息,如屏幕分辨率、电池电量、系统版本等。

运行代码,这时看到类似下面的输出,就可以正式开始用我们这个库了。

(3)安装并且测试完成之后,重新在pyCharm中运行代码,很莫名其妙的就不报错了。。。。

三、开启ATX的悬浮窗权限

另外为了保持稳定,还需要开启ATX小黄车的悬浮窗权限。

主要有两步,

  1. 给小黄车的悬浮窗权限加权
  2. 开启小黄车的悬浮窗(这一步其实也不需要,因为代码会自动拉起来一个悬浮窗)

(1)首先,打开手机,在设置的应用中,找到ATX,打开应用的悬浮窗授权。

(2)然后,点击ATX小黄车打开ATX应用,,点击快捷方式中的“开启悬浮窗”,这个时候界面右侧会出现一个小小的小黄车,代表应用已经成功启动了。

此时,uiautomator2的后台服务在论上可以存活很久很久。

相关文章:

  • 图像处理篇---opencv中的图像特征
  • JavaScript基本知识
  • 【C++模板】:开启泛型编程之门(函数模版,类模板)
  • 大模型在甲状腺良性肿瘤诊疗全流程中的应用研究报告
  • 【Golang】第一弹-----初步认识GO语言
  • docker 小记
  • 使用 OpenSSL 和 Python 实现 AES-256-CBC 加密与解密(安全密钥管理)
  • Node 使用 SSE 结合redis 推送数据(echarts 图表实时更新)
  • Javascript基础语法详解
  • 深入探索Matter协议:开发Matter智能家居设备的基本步骤
  • 《Java三剑客:JDK、JRE、JVM的“塑料友情”》
  • wireshark 如何关闭混杂模式 wireshark操作
  • redis在ubuntu更新至最新版本-官方提供方法-查看版本和状态-查看数据库中数据
  • 【Javascript网页设计】在线食谱分享页面案例
  • 网络防火墙是什么有什么用_网络防火墙:守护信息安全的重要屏障
  • 【论文精读】ACE-Zero
  • 电脑的写字板如何使用?
  • FastJSON常用注解
  • 利用python生成excel中模板范围对应的shape文件
  • 指令微调 (Instruction Tuning) 与 Prompt 工程
  • 用帝国做的网站只收录首页/百度手机助手下载2021新版
  • 用nas做网站/简述网站推广的方法
  • 仿券妈妈网站开发/seo指的是什么意思
  • 创建商务站点的主要工作/色盲眼中的世界
  • 网站建设教程免费夕滋湖南岚鸿官网/百度网站大全旧版
  • 哪个威客网站做翻译最赚钱/东莞网站推广公司黄页