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

news2025/5/15 23:20:44

目录

一、前期准备

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的后台服务在论上可以存活很久很久。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2314580.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

子母钟系统,京准电子科技助力高考精准计时

子母钟系统,京准电子科技助力高考精准计时 子母钟系统,京准电子科技助力高考精准计时 【摘要】子母钟系统又叫网络时钟系统是校园网络中一个重要的精准计时系统,随着网络的普及,许多校园都建了自己的校园专网,使用的…

深度解析:主流大模型与智能体框架能力对比及实战指南

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。https://www.captainbed.cn/north 文章目录 一、技术演进全景图二、主流大模型能力矩阵1. 闭源模型对比2. 开源模型对比 三、智能体框架深…

Linux中的基本指令(下)

目录 mv指令 more指令 less指令 head指令 tail 指令 继续理解文件 重定向和追加重定向操作 理解管道 find指令 whereis 指令 bc指令 uname ‒r指令 grep 指令 关机 扩展命令 zip/unzip 指令 tar指令 关于rzsz 系统间的文件互传 接上! mv指令 m…

第十七:go 反射

fmt.printf("%T",obj) // 打印 reflect 的类型 fmt.Printf("%T", obj) // *reflect.rtype //打印的是一个指针类型 reflect包 在Go语言中反射的相关功能由内置的reflect包提供,任意接口值在反射中都可以理解为由reflect.Type和…

【RabbitMQ】Spring Boot 结合 RabbitMQ 完成应用间的通信

🔥个人主页: 中草药 🔥专栏:【中间件】企业级中间件剖析 Spring 框架与 RabbitMQ 的整合主要通过 Spring AMQP(Advanced Message Queuing Protocol)模块实现,提供了便捷的消息队列开发能力。 引…

Pytorch系列教程:可视化Pytorch模型训练过程

深度学习和理解训练过程中的学习和进步机制对于优化性能、诊断欠拟合或过拟合等问题至关重要。将训练过程可视化的过程为学习的动态提供了有价值的见解,使我们能够做出合理的决策。训练进度必须可视化的两种方法是:使用Matplotlib和Tensor Board。在本文…

electron+vue+webview内嵌网页并注入js

vue内嵌网页可以使用iframe实现内嵌网页,但是只能通过postMessage间接通信,在electron环境下,vue可以直接使用webview来内嵌网页,支持 executeJavaScript、postMessage、send 等丰富的通信机制。 使用 webview的优势 性能更佳&…

利用OpenResty拦截SQL注入

需求 客户的一个老项目被相关部门检测不安全,报告为sql注入。不想改代码,改项目,所以想到利用nginx去做一些数据校验拦截。也就是前端传一些用于sql注入的非法字符或者数据库的关键字这些,都给拦截掉,从而实现拦截sql…

CAD文件转换为STL

AutoCAD与STL格式简介 AutoCAD软件是由美国欧特克有限公司(Autodesk)出品的一款自动计算机辅助设计软件,可以用于绘制二维制图和基本三维设计,通过它无需懂得编程,即可自动制图,因此它在全球广泛使用&…

QT:串口上位机

创建工程 布局UI界面 设置名称 设置数据 设置波特率 波特率默认9600 设置数据位 数据位默认8 设置停止位 设置校验位 调整串口设置、接收设置、发送设置为Group Box 修改配置 QT core gui serialport 代码详解 mianwindow.h 首先在mianwindow.h当中定义一个串口指…

win32汇编环境,网络编程入门之二

;运行效果 ;win32汇编环境,网络编程入门之二 ;本教程在前一教程的基础上,研究一下如何得到服务器的返回的信息 ;正常的逻辑是连接上了,然后我发送什么,它返回什么,但是这有一个很尴尬的问题。 ;就是如何表现出来。因为网络可能有延…

【认识OpenThread协议】

OpenThread 是一种基于 IPv6 、IEEE 802.15.4 标准的低功耗无线 Mesh 网络协议,主要用于智能家居、物联网设备等场景。它的设计目标是实现设备之间的高效通信、低功耗运行和高可靠性。 OpenThread官方文档 ① 特性 低功耗: 适合电池供电的设备。 Mesh 网络: 支持多…

字节跳动 —— 建筑物组合(滑动窗口+溢出问题)

原题描述: 题目精炼: 给定N个建筑物的位置和一个距离D,选取3个建筑物作为埋伏点,找出所有可能的建筑物组合,使得每组中的建筑物之间的最大距离不超过D。最后,输出不同埋伏方案的数量并对99997867取模。 识…

开源数字人模型Heygem

一、Heygem是什么 Heygem 是硅基智能推出的开源数字人模型,专为 Windows 系统设计。基于先进的AI技术,仅需1秒视频或1张照片,能在30秒内完成数字人形象和声音克隆,在60秒内合成4K超高清视频。Heygem支持多语言输出、多表情动作&a…

Linux远程工具SecureCRT下载安装和使用

SecureCRT下载安装和使用 SecureCRT是一款功能强大的终端仿真软件,它支持SSH、Telnet等多种协议,可以连接和管理基于Unix和Windows的远程主机和网络设备。SecureCRT提供了语法高亮、多标签页管理、会话管理、脚本编辑等便捷功能,安全性高、操…

江科大51单片机笔记【15】直流电机驱动(PWM)

写在前言 此为博主自学江科大51单片机(B站)的笔记,方便后续重温知识 在后面的章节中,为了防止篇幅过长和易于查找,我把一个小节分成两部分来发,上章节主要是关于本节课的硬件介绍、电路图、原理图等理论…

【网络协议详解】——QOS技术(学习笔记)

目录 QoS简介 QoS产生的背景 QoS服务模型 基于DiffServ模型的QoS组成 MQC简介 MQC三要素 MQC配置流程 优先级映射配置(DiffServ域模式) 优先级映射概述 优先级映射原理描述 优先级映射 PHB行为 流量监管、流量整形和接口限速简介 流量监管 流量整形 接口限速…

Spring学习笔记:工厂模式与反射机制实现解耦

1.什么是Spring? spring是一个开源轻量级的java开发应用框架,可以简化企业级应用开发 轻量级 1.轻量级(对于运行环境没有额外要求) 2.代码移植性高(不需要实现额外接口) JavaEE的解决方案 Spring更像是一种解决方案,对于控制层,它有Spring…

pytest数据库测试文章推荐

参考链接: 第一部分:http://alextechrants.blogspot.fi/2013/08/unit-testing-sqlalchemy-apps.html第二部分:http://alextechrants.blogspot.fi/2014/01/unit-testing-sqlalchemy-apps-part-2.html

vue3 二次封装uni-ui中的组件,并且组件中有 v-model 的解决方法

在使用uniappvue3开发中&#xff0c; 使用了uni-ui的组件&#xff0c;但是我们也需要自定义组件&#xff0c;比如我要自定一个picker 的组件&#xff0c; 是在 uni-data-picker 组件的基础上进行封装的 父组件中的代码 <classesselect :selectclass"selectclass"…