2013-03-04 70 views
4

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

我原本以为这是由于编译对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] at com.example.runTests(Runner.java:124) [exec] at 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] at junit.framework.TestCase.runTest(TestCase.java:168) [exec] at junit.framework.TestCase.runBare(TestCase.java:134) [exec] at junit.framework.TestResult$1.protect(TestResult.java:115) [exec] at junit.framework.TestResult.runProtected(TestResult.java:133) [exec] at junit.framework.TestResult.run(TestResult.java:118) [exec] at junit.framework.TestCase.run(TestCase.java:124) [exec] at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:124) [exec] at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:85) [exec] at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:76) [exec] at com.android.commands.uiautomator.Launcher.main(Launcher.java:83) [exec] at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) [exec] at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235) [exec] at dalvik.system.NativeStart.main(Native Method) [exec] Caused by: java.lang.NoSuchMethodError: com.android.uiautomator.core.UiScrollable.setAsHorizontalList [exec] at com.example.Runner.launchAppFromHomeScreen(Test.java:45) [exec] ... 19 more

回答

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上使用我的设备您可能需要稍微调整代码,但方法调用可以工作。

+0

很高兴知道它不只是我。我认为他们已经改变了两个版本之间的东西。 – MrChaz 2013-03-11 10:47:10

+1

为此欢呼。我在KitKat上存在的滑动问题仍然存在,例如Google ui测试页面上的示例。它会进入应用程序屏幕,尝试向左滑动,然后尝试向右移动,然后表示无法找到“设置”应用程序,尽管在手机上设置应用程序位于第三个页面(它永远不会去)。 – newfivefour 2013-12-04 21:18:21

+0

@JulianHarty嗨,朱利安,你放弃了uiautomator并转移到Espresso? – 2014-08-27 23:14:56

7

UIAutomator的代码有变化:

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

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

+0

对api-16编译时,我仍然得到这个错误 – MrChaz 2013-03-12 12:50:00

+1

这很奇怪,我已经通过使用正确的UIAutomator.jar解决了这个问题。 – Aria4Larry 2013-03-13 07:40:54

+0

该解决方案适用于我。我的目标是android-16,我的设备是4.2.2。将目标更改为android-17后,它工作正常。 – 2013-10-21 21:37:51

0

你好,即使我面临同样的问题,然后首先我删除了我有的build.xml,并创建了新的build.xml文件,然后ant build然后运行。它对我的作品尝试相同..

相关问题