onViewСоздано с библиотекой совместимости - PullRequest
4 голосов
/ 08 октября 2011

В приложении для Android реализован фрагмент, который переопределяет onViewCreated , чтобы настроить некоторые OnClickListeners, как только представление будет там.

Все это прекрасно работает, когда я реализую.Однако, как только я добавляю библиотеку совместимости v4 r3, кажется, что метод вообще не вызывается.

Пока я переношу настройки в onResume, но это на самом деле не идеально.Итак, вот мои вопросы:

  • Это ошибка в библиотеке совместимости?

  • Есть ли лучший обходной путь?

После еще нескольких копаний и проб разных вещей я получил эту трассировку стека, которая позволяет мне поверить, что это действительно ошибка в библиотеке совместимости.

10-07 14:25:11.130: ERROR/AndroidRuntime(2964): FATAL EXCEPTION: main
        java.lang.NoSuchMethodError: android.support.v4.app.Fragment.onViewCreated
        at roboguice.fragment.RoboFragment.onViewCreated(RoboFragment.java:18)

Но дажеболее странноЕсли посмотреть на источник библиотеки совместимости, этот метод действительно есть, но он пуст.

1 Ответ

3 голосов
/ 18 октября 2011

После долгих поисков и отладки я обнаружил проблему. Оказывается, я использовал старую версию библиотеки совместимости в своем проекте. Я сейчас обновил свой проект, и все работает нормально. Для справки необходимо изменить зависимость библиотеки совместимости в файле maven pom, чтобы она была такой:

        <dependency>
            <groupId>android.support</groupId>
            <artifactId>compatibility-v4</artifactId>
            <version>r3</version>
        </dependency>

с библиотекой, развернутой в репозитории Maven с помощью Maven Android SDK Deployer. Я также обновил вики roboguice и связанный гист на моем аккаунте github .

...