【问题标题】:Cannot access androidx.lifecycle.LifecycleOwner, what is the meaning of error in Android?无法访问androidx.lifecycle.LifecycleOwner,Android中error是什么意思?
【发布时间】:2020-01-05 19:09:07
【问题描述】:

android-build/android-studio 在哪种情况下会显示这些错误?

无法访问 androidx.lifecycle.LifecycleOwner 和
无法访问 androidx.lifecycle.ViewModelStoreOwner

这个错误是什么意思?我发现添加androidx.lifecycle:lifecycle-viewmodel作为依赖可以解决这些错误,我想知道错误在Android Activity LifeCycle方面的含义(或者它是否与生命周期有关)。

例如,在此代码中调用 `super' onSavedInstanceState 会显示此错误

public class AppActivity extends FragmentActivity {

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);  // Cannot access androidx.lifecycle.LifecycleOwner
    }

}

什么时候应该使用 Android Lifecycles,什么时候应该避免使用它?

【问题讨论】:

    标签: android android-support-library androidx


    【解决方案1】:

    将此添加到您的 gradle 依赖项中

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

    【讨论】:

      【解决方案2】:

      为了完整起见,即使在添加依赖项并使用一键重构正确迁移到 androidx 之后,您仍然会收到针对 Kotlin 代码的智能感知错误

      Cannot access 'Cannot access androidx.lifecycle.LifecycleOwner' ...
      

      ,虽然项目构建良好。

      那么你就必须

      1. 退出 Android Studio
      2. 删除project/.idea 文件夹
      3. 删除~/.gradle文件夹
      4. 重启 Android Studio

      File > Invalidate Caches / Restart 不起作用。

      【讨论】:

      • 删除文件为我解决了这个问题。谢谢!
      【解决方案3】:

      更新到最新的 appcompat 库版本可以帮助解决这个问题。

      androidx.appcompat:appcompat:1.3.0-alpha01
      

      【讨论】:

        猜你喜欢
        • 2023-01-14
        • 1970-01-01
        • 2018-01-30
        • 2020-05-03
        • 2015-09-25
        • 2012-07-21
        • 1970-01-01
        • 2013-04-10
        • 1970-01-01
        相关资源
        最近更新 更多