androidx.lifecycle.DefaultLifecycleObserver 未找到

androidx.lifecycle.DefaultLifecycleObserver not found

我遇到一个问题,我的构建无法找到 androidx classes 之一,特别是:

androidx.lifecycle.DefaultLifecycleObserver

这是我的 gradle 部门:

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 classes 时没有任何其他问题,只有这个。

我曾尝试使 android studio 中的缓存失效并重新启动,但没有成功。还有一个构建清理以及 gradle 同步。

我在这里验证:

https://developer.android.com/jetpack/androidx/migrate

class 从支持库到 androidx 的映射:

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

关于为什么会发生这种情况有什么想法吗?

我认为那是因为你缺少一个依赖项:

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

获取最新版本lifecycle-common-java8here

参见documentation

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.

在 Flutter 中

通常发生这种情况是因为您的项目没有完全支持 Android X。请确保您已经完全迁移到它,通过检查 official instructions 或者您可以检查是否满足以下要求都满足了

  1. 在您项目的 android/app/build.gradle 上,将 compileSdkVersiontargetSdkVersion 更改为 28

  2. 转到 android/gradle.properties 文件并添加以下行:

    android.useAndroidX=true
    android.enableJetifier=true
    

如果这些都不起作用,您可能有一些相互冲突的依赖关系或 wrongly migrated to V2 embedded support。要修复它,请执行以下操作:

  1. 使用 flutter create;

    创建一个具有相同名称和依赖项的新应用
  2. 小心地将源代码复制到新项目中,只选择所需的文件,特别是在 android/ 目录中;

  3. 编译,此时一切正常;