У меня возникла проблема, когда моя сборка не может найти один из классов 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
Любые идеи о том, почему это происходит?
Я думаю, это потому, что вам не хватает одной зависимости:
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.
Во трепете
Обычно это происходит из-за того, что ваш проект не полностью поддерживает Android X. Убедитесь, что вы полностью перешли на него, проверив официальные инструкции, или вы можете просто проверить, выполнены ли приведенные ниже требования.
В вашем проекте android/app/build.gradle измените compileSdkVersion и targetSdkVersion на 28
Перейдите в файл android/gradle.properties и добавьте следующие строки:
android.useAndroidX=true
android.enableJetifier=true
Если ни один из них не сработал, возможно, у вас есть какие-то конфликтующие зависимости или ошибочный переход на встроенную поддержку V2. Чтобы исправить это, сделайте следующее:
Создайте новое приложение с тем же именем и зависимостями, используя flutter create;
Аккуратно скопируйте исходный код в новый проект, выбрав только необходимые файлы, особенно в каталоге android/;
Соберите, и на этом этапе все должно быть в порядке;
ДА! Большое спасибо.