下载地址:https://share.weiyun.com/5nNDyET
最近在群里发现好多同学在执行uiautomator2 init
的时候,总是出各种错误。在这里需要总结下,以免新来的同学掉到坑里。
首先看一下 init 的源代码:
def _init_with_serial(self, serial, server, apk_version, agent_version,
reinstall, ignore_apk_check):
log.info("Device(%s) initialing ...", serial)
ins = Installer(serial)
ins.server_addr = server
ins.install_minicap()
ins.install_minitouch()
ins.install_uiautomator_apk(apk_version, reinstall)
log.info("atx-agent is already running, force stop")
ins.shell("/data/local/tmp/atx-agent", "-stop", raise_error=False)
ins.shell("killall", "atx-agent", raise_error=False)
ins.shell("rm", "/sdcard/atx-agent.pid", raise_error=False)
ins.shell("rm", "/sdcard/atx-agent.log.old", raise_error=False)
if not ins.check_agent_installed(agent_version):
ins.install_atx_agent(agent_version, reinstall)
if not ignore_apk_check:
ins.check_apk_installed(apk_version)
ins.launch_and_check()
很容易看懂,最主要的就是这几行
ins.install_minicap()
ins.install_minitouch()
ins.install_uiautomator_apk(apk_version, reinstall)
ins.check_apk_installed(apk_version)
就是往手机了装了 4 个东西minicap
minitouch
uiautomator_apk
atx-agent
,其实是 5 个东西 uiautomator_apk
安装了app-uiautomator.apk
和app-uiautomator-test.apk
两个 apk
下面将大家经常遇到的几个问题总结下
不要慌,其实由于好多同学网络的原因,导致上面所说的 5 个东西总是下载失败才会出现这样的错误的。一般都是uiautomator_apk
没有下载下来造成的。
解决的办法:手动去这个地址下载和你本地 uiautomator2 版本匹配的 apk,https://github.com/openatx/android-uiautomator-server/releases
然后手动安装上去 ,再执行一下python -m uiautomator2 init
看看(uiautomator2 版本匹配可以在 pip 安装的 uiautomator2 的目录下有个versiopn.py
的文件里可以看到)
请先确定你手机 init 的时候,后面跟着的 server 的地址是对的 例如你 atx-serve 的地址是10.0.12.34:8000
那么你执行 init 命令就应该是:python -m uiautomator2 init 10.0.12.34:8000
确保你后面 8000 的端口号没忘记。
然后看一下你的手机的 wifi 有没有和电脑连在同一个网下面。如果还是没有出来,就再执行一下上面的那个 init 的命令
以上都是针对真机的,如果你用的是模拟器的话,建议你还是换一个真机来试一试。也不太明白为什么拿模拟器连 atx-serve....
atx-serve 设备点击 use 之后画面的实时展示和可操作都是依赖minicap
minitouch
的,应该是这两个没有安装成功造成的。
再重新 init 之后试试看,实在不行就手机重启之后,再 init 一下试试看。
以上也是针对真机的,模拟器的话,minicap
就是不支持的,init 成功了也没用,建议换真机
和 3 的问题一个原因,真机的话重新 init;模拟器的话,minicap
就是不支持的,init 成功了也没用,建议换真机
先看一下你手机是什么牌子的,看看你直接执行 adb install 安装能不能正常安装成功
比如小米的,需要在开发者选项里打开两个选项(就是 usb 选项下第一个和第二个,叫啥名字忘记了)
比如 OPPO、VIVO 的手机,init 安装的时候需要手动确认输密码
还有其他很多安卓手机,各种各样的问题自己慢慢摸索吧
自己看文档去....
https://github.com/openatx/uiautomator2
之前的 Q&A:ATX 项目 Question and Answers (FAQ) QQ 群消息问答部分汇总
-------- 分割线 --------
针对第一个下载不成功的问题,我把 init 的代码中下载的部分全部改成了使用本地文件了
所有需要下载的文件都已经下载好了
如果 atx-agent 和 auiautomator_apk 的版本更新了的话,去 U2.py 下改一下版本号,然后把新版的文件下载下来放到和版本号重名的文件夹里面就行了
uiautomator_apk 下载地址
atx-agent 下载地址
minicup&minitouch 下载地址
使用方法和原来的 init 类似,解压压缩包之后,命令行 cd 到这个文件夹下后,执行命令python -m U2 init
就行了