#android #android-uiautomator #android-11 #uiautomatorviewer #android-api-30
#Android #android-uiautomator #android-11 #uiautomatorviewer #android-api-30
Вопрос:
Я тестирую приложения на мобильных телефонах Android с помощью платформы тестирования UI Automator 1.0 с помощью опции инструментов командной строки. Я смог написать тесты с помощью автоматизированных API-интерфейсов на Java , создать XML с помощью файла Android.bat из инструментов Android/sdk, создать JAR с помощью ANT и push и запустить этот тест с помощью ADB на мобильном устройстве, все работало, как ожидалось, до Android API 28 или Android 10 мобильных телефонов.
Однако тот же подход не работает для API уровня 30 или выше, т. е. на платформе Android 11. Как и прежде, я могу создать XML, создать файл Jar и отправить его на целевой мобильный телефон с помощью adb, но когда я пытаюсь запустить файл Jar, я получаю ошибку ниже:
BUILD SUCCESSFUL Total time: 1 second deploying generated test JAR file to device C:UsersxxworkspaceMotoEdge20binMotoEdge20.jar: 1 file pushed, 0 skipped. 3.5 MB/s (2427 bytes in 0.001s) Warning: This version of UI Automator is deprecated. New tests should be written using UI Automator 2.0 which is available as part of the Android Testing Support Library. See https://developer.android.com/training/testing/ui-testing/uiautomator-testing.html for more details. INSTRUMENTATION_STATUS: stream= Test results for WatcherResultPrinter=Test run aborted due to unexpected exception: Failed resolution of: Landroid/test/RepetitiveTest; java.lang.NoClassDefFoundError: Failed resolution of: Landroid/test/RepetitiveTest; at com.android.uiautomator.testrunner.UiAutomatorTestRunner$WatcherResultPrinter.startTest(UiAutomatorTestRunner.java:297) at junit.framework.TestResult.startTest(TestResult.java:168) at junit.framework.TestResult.run(TestResult.java:119) at junit.framework.TestCase.run(TestCase.java:129) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:160) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:96) at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:91) at com.android.commands.uiautomator.Launcher.main(Launcher.java:83) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:399) Caused by: java.lang.ClassNotFoundException: android.test.RepetitiveTest ... 10 more Time: 0.023 OK (1 test)
Также в моей среде разработки eclipse я замечаю, что API-интерфейсы Uiautomator, такие как UIautomatorTestCase, UIDevice, UIObject и т. Д., Помечены как устаревшие.
Как преодолеть эту ошибку на мобильных телефонах Android 11? Я не вижу никакой информации об этом на веб-сайте Android, быстрая помощь действительно ценится.