uiautomatorviewer 启动出错

5,139 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

uiautomatorviewer 启动出错

日常观摩别人的UI代码,发现以前配置好的uiautomator不能使用了,于是尝试着去解决它,uiautomator是用来做UI测试的,在Android每个组件都是一个NodeInfo,点击该Node,uiautomator会给出详细的组件属性,这些属性在一些情况下可以进行参考,去判断这个UI是否符合预期。

uiautomatorviewer 的路径在Android sdk的tools/bin 目录下。

Windows 端解决

Windows中无法打开uiautomatorviewer,会出现错误的弹窗。

uiautomatorviewer 是依赖于Java环境的,如果JDK版本高于java8的话,就无法启动了,可能是google没有对它进行适配。

那么如何解决呢?

第一种方式,将Java环境变量降级到java8

第二种方法,编辑uiautomatorviewer.bat中的代码,使其强制使用java8的环境,这样就不需要将全局环境变量降级了。

uiautomatorviewer中增加以下代码。


set JAVA_HOME=C:/Java/java1.8

set java_exe="%JAVA_HOME%"/bin/java.exe

Mac 解决

Mac 版本的uiautomatorviewer表现和Windows不一致,Windows上无法打开,而Mac上是打开之后,按钮都无法点击。

后来发现几乎所有的SWT程序都不可以使用了,我的macOS 版本是BigSur,折腾了很久,并没有发现坑在哪里,大概猜测是因为mac版本的问题,大概觉得是辅助功能里没给权限,但是后来给了权限仍然不行。

第一种方法

使用第三方改过之后的版本。

后来发现谷歌提供了这些程序的官方代码库,有一些大神会在这些库的基础上进行二次开发,逛了github,有很多人uiautomator进行了改进。

然后发现了github上有人对它进行二次开发,下载尝试了一下,可以用了,下载地址:

github.com/cmlanche/ui…

如何使用呢?


cd /Users/XXX/Desktop/Tools/uiautomator

java -XstartOnFirstThread -jar /Users/XXX/Desktop/Tools/uiautomator/uiautomatorviewer-standalone-1.1-all.jar

第二种方法

替换不完善的库。

这是Mac bigSur版本上的问题,解决的原文在这里:

sqa.stackexchange.com/questions/4…


这个问题似乎与您看到的问题相同。我按照这个回答,就是SWT Binary and Source从 Eclipse 项目下载最新版本,解压,将 swt.jar 重命名为 swt2.jar,然后复制到~/Library/Android/sdk/tools/lib/x86_64/swt2.jar.

此解决方法最初是在此问题报告中提出的。有人说他们也必须将其复制到~/Library/Android/sdk/tools/lib/x86/swt2.jar,但我确实需要这样做。

就我而言,我为我的(非 ARM)MacBook Pro下载了4.19 Mac OSX(64 位版本)版本。您可以在Eclipse 项目下载页面上找到其他版本。

下载SWT

download.eclipse.org/eclipse/dow…

注意:这里保持原来的swt不变,把下载之后的swt重命名为swt2,移动至相应目录即可。