无法访问片段上的android.arch.lifecycle.LifecycleOwner?

时间:2017-12-21 11:41:52

标签: android android-fragments

当我从抽象基础片段扩展时会发生这种情况:

public abstract class BaseFragment<T extends BasePresenter, E extends BaseModel> extends Fragment {
....
}

,但应用程序仍然构建没有任何错误。以下是我的build.gradle配置:

android {
    compileSdkVersion 27
    buildToolsVersion '26.0.2'
    defaultConfig
    {
        multiDexEnabled true
        minSdkVersion 21
        targetSdkVersion 27
    } 
}

6 个答案:

答案 0 :(得分:3)

将以下行添加到gradle

implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'

答案 1 :(得分:1)

解决方案1:

  

LifecycleOwner:具有Android生命周期的类。这些事件可以由   定制组件以处理生命周期更改,而无需实施任何更改   活动或片段中的代码。

要访问LifecycleOwner类,请在您的应用程序 build.gradle 文件中添加以下依赖项。

implementation "android.arch.lifecycle:extensions:1.1.1"

解决方案2:

在您的应用程序 build.gradle 文件中添加以下支持兼容兼容性。

implementation 'com.android.support:support-compat:27.1.1'

答案 2 :(得分:0)

我遇到了同样的问题,将其添加到应用程序build.gradle可能会解决问题     annotationProcessor&#34; android.arch.lifecycle:common-java8:1.1.1&#34;

答案 3 :(得分:0)

我遇到了同样的问题,并且通过更新build.gradle文件中的android支持库解决了此问题。

我建议将您的android支持库更新为27.1.1或更高版本。无需添加:

implementation 'android.arch.lifecycle:extensions:1.1.1'  (not recommended)

答案 4 :(得分:0)

请按照以下步骤操作,问题将得到解决:

  1. 如果您的应用程序级别的build.gradle中未添加以下依赖项,请添加它:

    实现“ android.arch.lifecycle:extensions:1.1.1” 并与项目同步 gradle文件。

  2. 如果已添加,则:

    a。转到工具-> 清理项目

    b。 重建项目

    c。转到文件-> 使缓存无效并重新启动

答案 5 :(得分:0)

就我而言,我刚刚将我的版本更新为ff版本,错误消失了

implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation 'androidx.lifecycle:lifecycle-common-java8:2.3.0-alpha03'