【发布时间】:2018-11-24 15:05:09
【问题描述】:
我正在尝试创建可感知生命周期的视图模型。但是我在我的Android项目中找不到ViewModelProviders类,只有ViewModelProvider。似乎也没有 android.arch.lifecycle.ViewModelProviders 包供我导入。发生了什么
【问题讨论】:
我正在尝试创建可感知生命周期的视图模型。但是我在我的Android项目中找不到ViewModelProviders类,只有ViewModelProvider。似乎也没有 android.arch.lifecycle.ViewModelProviders 包供我导入。发生了什么
【问题讨论】:
另外,仅供参考。
ViewModelProviders 类现已弃用。
根据 Android 开发者文档:ViewModelProviders
此类已弃用。使用 ViewModelProvider 的构造函数 直接。
【讨论】:
您的项目中可能包含此依赖项:
implementation "android.arch.lifecycle:viewmodel:$lifecycle_version"
其中包含 ViewModelProvider(以及其他 4 个类),但 ViewModelProviders 位于不同的包中:
implementation "android.arch.lifecycle:extensions:$lifecycle_version"
以下是这些包的内容供参考(截至 1.1.1 版):
作为记录,您可以通过查找 ViewModelProviders 类的文档自己找到这一点,上面写着:
在 1.1.0 版本中添加
属于Maven神器android.arch.lifecycle:extensions:1.1.1
【讨论】:
LifeCycle 组件添加到项目中的一些更详细信息 developer.android.com/topic/libraries/architecture/…
androidx.* 命名空间。因此,您应该使用implementation "androidx.lifecycle:lifecycle-extensions:$lifecycleVersion" 和implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycleVersion"。在撰写本文时,使用$lifecycleVersion='2.0.0-rc1' 将起作用。请注意,这些库是向后兼容的,因此这也适用于 API 兼容性 的应用