写点什么

Mac 电脑解决无法使用 uiautomator viewer 的问题

作者:IT蜗壳-Tango
  • 2023-04-30
    江苏
  • 本文字数:1360 字

    阅读完需:约 4 分钟

很多做 APP 自动化测试的小伙伴对"uiautomatorviewer"这款工具肯定不陌生,如果你是刚接触自动化测试的小伙伴也没有关系,这里简单的介绍一下这个工具。

uiautomator viewer

uiautomatorviewer 是 android SDK 自带的一个元素定位工具。通过截屏并分析 XML 布局文件的方式,为用户提供控件信息查看服务。

使用 uiautomatorviewer,你可以检查一个应用的 UI 来查看应用的布局和组件以及相关的属性。该工具位于 SDK 目录下的 tools\bin 子目录下。

下图是正常启动的画面,我们可以通过鼠标选择 APP 上的元素,然后查看它的属性。这样我们就可以通过类似 Appium 这种工具来操控它。

在 Windows 上只要正常的安装好环境,理论上是可以直接使用,然而,最近我在 Mac 上使用时发现它会崩溃。

java.lang.NullPointerException

at org.eclipse.swt.widgets.Control.internal_new_GC(Unknown Source)

at org.eclipse.swt.graphics.GC.<init>(Unknown Source)

at org.eclipse.swt.graphics.GC.<init>(Unknown Source)

at org.eclipse.swt.widgets.Tree.computeSize(Unknown Source)

at org.eclipse.swt.layout.GridData.computeSize(Unknown Source)

at org.eclipse.swt.layout.GridLayout.layout(Unknown Source)

at org.eclipse.swt.layout.GridLayout.computeSize(Unknown Source)

at org.eclipse.swt.widgets.Composite.computeSize(Unknown Source)

at org.eclipse.swt.custom.SashFormLayout.computeSize(Unknown Source)

at org.eclipse.swt.widgets.Composite.computeSize(Unknown Source)

at org.eclipse.swt.custom.SashFormLayout.computeSize(Unknown Source)

at org.eclipse.swt.widgets.Composite.computeSize(Unknown Source)

at org.eclipse.swt.layout.FillData.computeSize(Unknown Source)

at org.eclipse.swt.layout.FillLayout.computeChildSize(Unknown Source)

at org.eclipse.swt.layout.FillLayout.computeSize(Unknown Source)

at org.eclipse.swt.widgets.Composite.computeSize(Unknown Source)

at org.eclipse.swt.layout.GridData.computeSize(Unknown Source)

at org.eclipse.swt.layout.GridLayout.layout(Unknown Source)

at org.eclipse.swt.layout.GridLayout.layout(Unknown Source)

at org.eclipse.swt.widgets.Composite.updateLayout(Unknown Source)

at org.eclipse.swt.widgets.Composite.updateLayout(Unknown Source)

at org.eclipse.swt.widgets.Composite.layout(Unknown Source)

at org.eclipse.swt.widgets.Display.runSettings(Unknown Source)

at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)

at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)

at org.eclipse.jface.window.Window.open(Window.java:801)

at com.android.uiautomator.UiAutomatorViewer.main(UiAutomatorViewer.java:78)

那么该如何解决这问题呢?

解决办法

方法其实很简单,我们重新下载一个 swt.jar 文件,然后放到 tools/lib/x86_64 这个路径下,并修改文件名为 swt2.jar 即可。

下载链接:https://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops4/R-4.20-202106111600/swt-4.20-cocoa-macosx-x86_64.zip

然后重新打开我们的 uiautomator viewer,即可正常工作了。


我是 Tango,一个热爱分享技术的程序猿。我们下期见。

发布于: 刚刚阅读数: 5
用户头像

一个日语专业的程序猿。 2017-09-10 加入

【坐标】无锡 【软件技能】Java,C#,Python 【爱好】炉石传说 【称号】InfoQ年度人气作者,Intel OpenVINO领航者联盟成员 【B站】https://space.bilibili.com/397260706/ 【个人站】www.it-worker.club

评论

发布
暂无评论
Mac 电脑解决无法使用uiautomator viewer的问题_三周年征文_IT蜗壳-Tango_InfoQ写作社区