uiautomatorviewer Ошибка при синтаксическом анализе файла XML иерархии пользовательского интерфейса: неверный файл иерархии пользовательского интерфейса

Я могу захватить один экран приложения, а другой экран хорошо.

графический интерфейс говорит: Ошибка при разборе файла XML иерархии пользовательского интерфейса: неверный файл иерархии пользовательского интерфейса. Ошибка при синтаксическом анализе файла XML иерархии пользовательского интерфейса: неверный файл иерархии пользовательского интерфейса.

и лог терминала:

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.

Обновление: я меняю телефон, теперь все в порядке..

2 ответа

Привет, если вы используете 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 есть два разных API. Один из них старый, устаревший и используется UiAutomatorViewer, а второй — новый и обычно используется тестами (которые обращаются к таким вещам, как UiObject2). Судя по тому, что я видел, эта проблема воспроизводится только с устаревшим API (то есть только при использовании UiAutomatorViewer). Мой обходной путь может показаться странным, но для меня он работает на 100%, просто когда вы устанавливаете приложение (например, зеленую кнопку в Android Studio), вам нужно перетащить свой эмулятор/устройство и просто что-то переместить. Например, продолжайте перемещать некоторую область прокрутки или что-то еще, и тогда, когда ваше приложение появится, вы сможете использовать UiAutomatorViewer без этой проблемы.

Да... Я знаю, что это очень странно и кажется совершенно не связанным, но я тестировал это несколько раз, и когда я перетаскиваю при установке приложения, UiAutomatorViewer работает нормально, но когда я этого не делаю, я получаю точно такая же ошибка. Что касается тестов, то не имело значения, делаю я это или нет, они всегда работали нормально (но, как я уже упоминал, они используют более новый API).

Другие вопросы по тегам