UIAutomatorViewer排查问题
一、背景:
排查一个弹窗展示的问题,不知道为什么会无缘无故的出现一个弹窗
通过android studio拍查不到这个弹窗,那么怎么办呢 想起来了eclipse中有一个工具UIAutomatorViewer,这个工具能展示出id以及其他的信息。
二、方案
1、下载
但是android3.0之后就无法使用了,那么怎么办?经过排查有一个独立运行的uiautomatorviewer。
而这个源码地址在:https://github.com/cmlanche/uiautomatorviewer-standalone
下载完成之后是一个java工程的,资料说可以通过
mvn clean package
进行打包,
如果显示command not found可能是没有下载Maven 。而安装的教程放在了https://www.jianshu.com/p/f1bda85a7bf4;
2、编译
还有一个方法就是 我们自己运行起来 放在我们的IntelliJ IDEA里面
在intellij导入我们的工程,直接运行起来
但是出错了
***WARNING: Display must be created on main thread due to Cocoa restrictions. Use vmarg -XstartOnFirstThread
org.eclipse.swt.SWTException: Invalid thread access
at org.eclipse.swt.SWT.error(SWT.java:4869)
at org.eclipse.swt.SWT.error(SWT.java:4784)
at org.eclipse.swt.SWT.error(SWT.java:4755)
at org.eclipse.swt.widgets.Display.error(Display.java:1103)
at org.eclipse.swt.widgets.Display.createDisplay(Display.java:851)
at org.eclipse.swt.widgets.Display.create(Display.java:835)
at org.eclipse.swt.graphics.Device.<init>(Device.java:130)
at org.eclipse.swt.widgets.Display.<init>(Display.java:734)
at org.eclipse.swt.widgets.Display.<init>(Display.java:725)
at org.eclipse.swt.widgets.Display.getDefault(Display.java:1437)
at org.eclipse.swt.widgets.Shell.<init>(Shell.java:278)
at org.eclipse.swt.widgets.Shell.<init>(Shell.java:379)
at org.eclipse.jface.window.Window.createShell(Window.java:487)
at org.eclipse.jface.window.Window.create(Window.java:430)
at org.eclipse.jface.window.Window.open(Window.java:788)
at com.android.uiautomator.UiAutomatorViewer.main(UiAutomatorViewer.java:78)
修改一下运行的配置参数 -XstartOnFirstThread
再次运行就完美解决了!运行起来了
三、收益
以后查看控件情况就可以用这个工具了!
四、引用资料
https://blog.csdn.net/weixin_42501018/article/details/120370594