UiAutomator uiautomatorviewer 定位元素时总是报.Error while parsing UI hierarchy XML file: Invalid ui automator hierarchy file.

greenplum · 2016年07月24日 · 最后由 vikki 回复于 2018年05月02日 · 2474 次阅读

uiautomatorviewer 定位元素时总是报.Error while parsing UI hierarchy XML file: Invalid ui automator hierarchy file.
定位某个界面元素才出现这个错,其他页面可正常获取

查看 C:\Users\Administrator\AppData\Local\Temp\uiautomatorviewer_6741492611496796841 目录下生成的 dump_1051247796670000085.uix 文件为空,png 截图文件无法查看
控制台上输出如下信息

org.xml.sax.SAXParseException; systemId: file:/C:/Users/ADMINI~1/AppData/Local/Temp/uiautomatorviewer_6741492611496796841/dump_1051247796670000085.uix; lineNumber: 1; columnNumber: 1; 文件提前结束。
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:441)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
        at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1436)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:1019)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:333)
        at javax.xml.parsers.SAXParser.parse(SAXParser.java:328)
        at com.android.uiautomator.tree.UiHierarchyXmlLoader.parseXml(UiHierarchyXmlLoader.java:128)
        at com.android.uiautomator.UiAutomatorModel.<init>(UiAutomatorModel.java:42)
        at com.android.uiautomator.UiAutomatorHelper.takeSnapshot(UiAutomatorHelper.java:142)
        at com.android.uiautomator.actions.ScreenshotAction$1.run(ScreenshotAction.java:85)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
        null rootnode after parsing.

之前成功获取截图一次,后来就一直报这个错,试过卸载重装 app 都不起作用。

共收到 18 条回复 时间 点赞

遇见过这个问题。 当前界面有元素没加载完。。 所以你取不出来

@lylyliuyu 我过了很久才去截取此界面,也是报这个错,在 Android4.4.4 的系统总是遇到,5 的系统是 OK 的

超时了。

@lihuazhang 怎么解决?

很多动态页面就是这样的 Uiautomator 解析不了

@gw172311655 这种情况没有解决方案吗?

网上有一种结合其他工具的办法 但是太麻烦,有点不方便,通常的话 如果某个界面不能解析,就用坐标来操作...还有就是如果你能知道这个动态页面上某些控件的属性,就是 Uiautomatorviewer 没能解析出来,也可以直接用

可以看下手机里是否有 uiautomator 的进程在跑,最直接的就是重启下手机再试试

遇到了同样的问题,每执行一次测试就会出现这个问题。重新连接一下手机就可以正常使用。不解

#9 楼 @u1476866488 你的问题跟上面的不一样,你这个问题是因为 uiautomator runtest 和 uiautomator dump 不能同时运行导致的

这个可以直接用 uidevice 里面一个 dump 的方法获取 xml 文件查看

码一下,同问。

同样遇到这个问题,在某些手机就会这样,应该不是加载的问题,等了很久,依旧是这个错误

也遇到这个问题,刚解决了,mac 上解决办法是执行:rm -rf ~/.android/monitor-workspace/ 之后再启动即可

今天也遇到了,尝试了楼上各位说的:
1.重启手机

  1. rm -rf ~/.android/monitor-workspace/

还是不行...

感觉应用的界面稍微复杂一些就解析不出来

码一下,同问这个问题解决了么?

很多动态页面就是这样的 Uiautomator 解析不了

手机 root 后可以正常使用

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册