uiAutomator在4.1.2设备上失败

时间:2013-03-04 14:43:53

标签: android ui-automation uiautomator android-uiautomator

使用Android uiAutomator时,我在尝试在4.1.2设备上运行测试时遇到了问题。 使用enter link description here中的代码时,在尝试滚动应用程序托盘时会抛出异常。

我原本以为这是因为编译api 17而不是16而引起的,但这似乎不是真的。 还有其他人遇到过吗?

提出异常:

  

[exec] java.lang.reflect.InvocationTargetException   [exec] at java.lang.reflect.Method.invokeNative(Native Method)   [exec] at java.lang.reflect.Method.invoke(Method.java:511)   [exec]在com.example.runTests(Runner.java:124)   [exec]在com.example.testExecutor(Runner.java:60)   [exec] at java.lang.reflect.Method.invokeNative(Native Method)   [exec] at java.lang.reflect.Method.invoke(Method.java:511)   [exec]在junit.framework.TestCase.runTest(TestCase.java:168)   [exec]在junit.framework.TestCase.runBare(TestCase.java:134)   [exec]在junit.framework.TestResult $ 1.protect(TestResult.java:115)   [exec]在junit.framework.TestResult.runProtected(TestResult.java:133)   [exec]在junit.framework.TestResult.run(TestResult.java:118)   [exec]在junit.framework.TestCase.run(TestCase.java:124)   [exec]在com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:124)   [exec]在com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:85)   [exec]在com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:76)   [exec]在com.android.commands.uiautomator.Launcher.main(Launcher.java:83)   [exec] at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)   [exec]在com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235)   [exec] at dalvik.system.NativeStart.main(Native Method)   [exec]引起:java.lang.NoSuchMethodError:com.android.uiautomator.core.UiScrollable.setAsHorizo​​ntalList   [exec]在com.example.Runner.launchAppFromHomeScreen(Test.java:45)   [exec] ... 19更多

3 个答案:

答案 0 :(得分:7)

UIAutomator的代码有变化:

4.1.1 method : public void setAsHorizontalList ()
4.2 method : public UIScrollable setAsHorizontalList ()

也许你正在使用API​​-17的UIAutomator来构建测试 但是在API-16设备上运行。 尝试使用相应的UIAutomator.jar

答案 1 :(得分:1)

本周我用UI Automator进行的实验看起来仍然不成熟,有了最好的支持,android-17作为你的目标和运行4.2.1的设备。我尝试使用安装了4.1.2的Galaxy S设备,并且与您报告的设备有类似的错误。

仅供参考:我认为Android 4.2.2中存在一个错误,它会停止多次刷卡而导致scrollIntoView(...)调用停止。我已向Google https://groups.google.com/forum/?fromgroups=#!topic/adt-dev/TjeewtpNWf8

报告了此问题

我发现演示应用http://developer.android.com/tools/testing/testing_ui.html使用Android 4.2.1在我的设备上运行您可能需要略微调整代码,但方法调用可以正常工作。

答案 2 :(得分:0)

你好,即使我遇到了同样的问题,然后我首先删除了我的build.xml并创建了新的build.xml文件,然后运行ant build。它适用于我尝试相同..