2013-03-04 107 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然後運行。它對我的作品嚐試相同..

相關問題