Mac 电脑解决无法使用 uiautomator viewer 的问题
很多做 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 即可。
然后重新打开我们的 uiautomator viewer,即可正常工作了。
我是 Tango,一个热爱分享技术的程序猿。我们下期见。
版权声明: 本文为 InfoQ 作者【IT蜗壳-Tango】的原创文章。
原文链接:【http://xie.infoq.cn/article/b8bad939c5182aeafd29c6265】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论