解析UI层次结构XML文件时,UIAUTOMATORVIEWER错误:无效的UI Automator层次结构文件



我可以捕获应用程序的一个屏幕,而另一个屏幕很好。

GUI说:解析UI层次结构XML文件时错误:无效的UI Automator层次结构文件。解析UI层次结构XML文件时错误:无效的UI Automator层次结构文件。

,终端的日志是:

org.xml.sax.SAXParseException; systemId: file:/var/folders/vs/30nqjbc16kd21g3hc_5h7vg40000gn/T/uiautomatorviewer_1759068495088939262/dump_421507564099289174.uix; lineNumber: 1; columnNumber: 1; Premature end of file.
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
    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:400)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
    at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1437)
    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:643)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:327)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:328)
    at com.android.uiautomator.tree.UiHierarchyXmlLoader.parseXml(UiHierarchyXmlLoader.java:130)
    at com.android.uiautomator.UiAutomatorModel.<init>(UiAutomatorModel.java:51)
    at com.android.uiautomator.UiAutomatorHelper.takeSnapshot(UiAutomatorHelper.java:155)
    at com.android.uiautomator.actions.ScreenshotAction$1.run(ScreenshotAction.java:91)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
null rootnode after parsing.

更新:我更换电话,现在一切都可以。

嗨,如果您使用Android 7.1.1或更高版本,则必须在移动设备中配置开发人员选项中的某些内容

1. Turn on USB DEBUGGING 2. Enable view attribute inspection 3. Select the debug app option and choose com.github.uiautomator

我遇到了同样的问题,我找到了时间。问题是uiautomator有2种不同的API。一个是旧的,不弃用的,被UiautomatorViewer使用,而第二是新的,并且通常由测试使用(访问uiObject2之类的东西)。从我看到的问题来看,只有使用不弃用的API(因此,只有在使用UiautomatorViewer)才能再现。我的解决方法似乎很奇怪,但是对我来说,它可以工作100%时间,仅当您安装应用程序时(例如,在Android Studio中的绿色按钮),您需要拖放模拟器/设备并移动某些内容。例如。继续移动一些滚动区域或其他任何内容,然后当您的应用显示时,您现在应该能够在没有此问题的情况下使用UiautomatorViewer。

是的...我知道这很奇怪,感觉完全无关,但是我已经多次测试了它,当我在安装应用程序时拖放时,uiautomatorviewer却可以正常工作,但是当我不这样做时,我'm遇到完全相同的错误。至于测试,无论我是否这样做都没关系,它们总是工作正常(但是正如我提到的那样,他们使用了较新的API)。

最新更新