我正在通过命令行工具选项使用 UI Automator 1.0 测试框架在 Android 手机上测试应用程序。我能够在 Java 中使用 UIautomated API 编写测试,使用 Android/sdk 工具中的 Android.bat 文件构建 XML,使用 ANT 创建 JAR 并在移动设备中使用 ADB 推送和运行此测试,一切都按预期工作,直到 Android API 28 或安卓 10 手机。
然而,相同的方法不适用于 API 级别 30 或更高级别,即在 Android 11 平台上。和以前一样,我能够构建 XML,创建 Jar 文件并使用 adb 将其推送到目标移动设备,但是当我尝试运行 Jar 文件时,出现以下错误:
BUILD SUCCESSFUL
Total time: 1 second
deploying generated test JAR file to device
C:\Users\xx\workspace\MotoEdge20\bin\MotoEdge20.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 IDE 中,我注意到 UIautomatorTestCase、UiDevice、UiObject 等 Uiautomator API 被标记为已弃用。
如何在 Android 11 手机上克服此错误?我在 Android 网站上没有看到任何关于此的信息,非常感谢快速帮助。