爬不动的毛毛虫IT@程序员猿媛

Uiautomatorviewer 获取安卓屏幕布局信息报错 -

2019-05-11  本文已影响0人  一只小菠菜

环境:Java version - 1.8.0_211,

错误截图

错误原因

  使用 uiautomator 的 uiautomatorviewer 组件获取安卓手机(或安卓模拟器)屏幕布局信息时产生的报错。从截图中看到的出错原因是:解析XML 文件时出现的错误。再来看看命令行报错截图:

  可以看到,大致的报错原因是:当 uiautomatorviewer 执行 dump 命令生成 xml 格式的布局信息文件时,产生文件加载异常而导致文件提前结束。至于为什么会出现这样的错误,就不清楚了(非安卓党)

解决方案

  解决思路:获取当前窗口布局信息,将布局信息pull到PC中指定的位置,再使用 uiautomatorviewer 获取 pull 到本地的布局信息,再获取相应的元素节点信息。

  编写 ui.bat 脚本:

@echo on
adb shell uiautomator dump /sdcard/app.uix
adb pull /sdcard/app.uix D:\Uiautomator\app.uix
adb shell screencap -p /sdcard/app.png
adb pull /sdcard/app.png D:\Uiautomator\app.png

  脚本解释:

- 创建当前安卓界面 UI 层次结构(布局信息),以 XML 格式存储到 app.iux
- 将app.iux pull 到当前 PC 的 D 盘指定路径下 ( 可自定义)
- 使用adb screencap 获取安卓屏幕截图
- 将截图 pull 到 PC 的 D 盘指定路径下 

  如此,当直接使用 uiautomatorviewer 获取安卓界面布局信息报错的时候,可使用 ui.bat 脚本 和 uiautomatorviewer 结合方式完成获取到相应元素节点的信息。运行如下:

说在最后

  咱是非安卓党,解决方案可能略显粗糙,但是也能解决眼前的问题。


  希望我的文章对你有帮助。

参考

上一篇下一篇

猜你喜欢

热点阅读