Android UIAutomator: setAsHorizontalList() выдает noSuchMethodError

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

    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();
        }
    }

person David Maes    schedule 25.04.2013    source источник
comment
Используете ли вы версию uiautomator.jar и android.jar API 16? Или вы используете API 17?   -  person CommonsWare    schedule 25.04.2013
comment
@CommonsWare Есть ли обходной путь, чтобы заставить его работать с API 16?   -  person Tim Boland    schedule 28.08.2014


Ответы (1)


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

person DucTran    schedule 13.05.2013