找不到androidx.lifecycle..DefaultLifecycleObserver

时间:2019-04-23 21:12:59

标签: android kotlin androidx

我遇到一个问题,我的构建无法找到其中一个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 studio中的缓存无效,然后重新启动就没有运气了。以及构建清理以及gradle同步。

我在这里验证了

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

该类从支持库到androidx的映射:

  

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

为什么会这样?

2 个答案:

答案 0 :(得分:3)

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

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

请参见documentation

  

如果您使用Java 8语言,请使用以下命令观察事件   DefaultLifecycleObserver。要包括它,您应该添加   “ android.arch.lifecycle:common-java8:”到您的build.gradle   文件。

答案 1 :(得分:0)

在颤振中

这通常是因为您的项目不完全支持 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. 构建,此时应该一切正常;