Androidx.lifecycle.DefaultLifecycleObserver не найден

У меня возникла проблема, когда моя сборка не может найти один из классов androidx, а именно:

androidx.lifecycle.DefaultLifecycleObserver

Вот мои градации:

annotationProcessor "androidx.lifecycle:lifecycle-compiler:2.0.0"
implementation "androidx.lifecycle:lifecycle-runtime:2.0.0"
implementation "androidx.lifecycle:lifecycle-extensions:2.0.0"

У меня нет других проблем с получением классов androidx, только с этим.

Я попытался аннулировать кеши в студии Android и перезапустить безуспешно. Также сборка чистая, а также синхронизация gradle.

Я проверил здесь:

https://developer.android.com/jetpack/androidx/мигрировать

Сопоставление этого класса из библиотеки поддержки с androidx:

android.arch.lifecycle.DefaultLifecycleObserver -> androidx.lifecycle.DefaultLifecycleObserver

Любые идеи о том, почему это происходит?

33
0
14 729
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я думаю, это потому, что вам не хватает одной зависимости:

implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"

Получить последнюю версию lifecycle-common-java8здесь

См. документация:

If you use Java 8 Language, then observe events with DefaultLifecycleObserver. To include it you should add "androidx.lifecycle:lifecycle-common-java8:" to your build.gradle file.

ДА! Большое спасибо.

lostintranslation 23.04.2019 23:30

Во трепете

Обычно это происходит из-за того, что ваш проект не полностью поддерживает Android X. Убедитесь, что вы полностью перешли на него, проверив официальные инструкции, или вы можете просто проверить, выполнены ли приведенные ниже требования.

  1. В вашем проекте android/app/build.gradle измените compileSdkVersion и targetSdkVersion на 28

  2. Перейдите в файл android/gradle.properties и добавьте следующие строки:

    android.useAndroidX=true
    android.enableJetifier=true
    

Если ни один из них не сработал, возможно, у вас есть какие-то конфликтующие зависимости или ошибочный переход на встроенную поддержку V2. Чтобы исправить это, сделайте следующее:

  1. Создайте новое приложение с тем же именем и зависимостями, используя flutter create;

  2. Аккуратно скопируйте исходный код в новый проект, выбрав только необходимые файлы, особенно в каталоге android/;

  3. Соберите, и на этом этапе все должно быть в порядке;

Другие вопросы по теме