2013-04-25 3 views
0

Я запускаю версию Android 4.1.2 на галактике Samsung SII. Недавно я начал работать с UIAutomator для тестирования моего пользовательского интерфейса. Проблема в том, что каждый раз, когда я пытаюсь запустить тест на телефоне, я получаю NoSuchMethodError для метода setAsHorizontalList(), используемого для объекта UIScrollableable. Eclipse распознает метод и не дает ошибки компиляции.Android UIAutomator: setAsHorizontalList() throws noSuchMethodError

private void turnOffNetwork() throws UiObjectNotFoundException { 
     getUiDevice().pressHome(); 

     UiObject allAppsButton = new UiObject(new UiSelector().description("Apps")); 
     allAppsButton.clickAndWaitForNewWindow(); 
     UiObject appsTab = new UiObject(new UiSelector().text("Apps")); 
     appsTab.click(); 
     UiScrollable appViews = new UiScrollable(new UiSelector().scrollable(true)); 
     appViews.setAsHorizontalList(); 
     UiObject settingsApp = appViews.getChildByText(new UiSelector().className(android.widget.TextView.class.getName()), "Instellingen"); 

     settingsApp.clickAndWaitForNewWindow(); 

     UiObject switchObject = new UiObject(new UiSelector().className(android.widget.Switch.class.getName())); 

     if (switchObject.isChecked()) { 
      switchObject.click(); 
     } 
    } 
+1

Вы используете версию API 16 для uiautomator.jar и 'android.jar'? Или вы используете API 17? – CommonsWare

+0

Я использую API 17. –

+0

@CommonsWare Есть ли обходной путь, чтобы заставить его работать с API 16? –

ответ

2

, к сожалению, функция setAsHorizontalList() может работать только на 4.2.2 (API 17) устройства, а не на API 16, вы можете попробовать его на эмуляторе или таблетки с API 17. Я узнал его в hard way a few days ago

+0

Есть ли обходной путь, чтобы заставить его работать с API 16? –

Смежные вопросы