我尝试将viewModelScope添加到基本的viewModel中,但是android studio无法识别它。
我尝试使用找到的一些解决方案来更改gradle构建文件,但无济于事。
这是我的build.gradle应用的摘录
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-alpha01"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-alpha01"
implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha01"
kapt "androidx.lifecycle:lifecycle-compiler:2.2.0-alpha01"
当我在viewModel中键入viewModelScope时,它说Unresolved reference: viewModelScope
。
答案 0 :(得分:3)
我遇到了同样的问题,并且刚刚导入:
"androidx.navigation:navigation-fragment-ktx:2.2.0-rc03"
"androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-rc03"
即使我认为fragment-ktx并没有真正的关系。花了我一段时间才能弄清楚。希望对您有帮助!
答案 1 :(得分:2)
目前为alpha版本,因此请更新您的gradle以使用以下依赖项:
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.1.0-beta01"
答案 2 :(得分:1)
在我的情况下,我忘了在该类中扩展ViewModel,用于viewModelScope的类必须类似于kotlin中的yourModelClass : ViewModel()
和Java yourModelClass extends ViewModel
希望它的帮助
答案 3 :(得分:1)
viewModelScope
是2.1.0
版本引入的,请参见here。
检查是否安装了lifecycle-viewmodel-ktx-2.2.0-alpha01.aar
。对我来说,您编写的设置没有错误消息。但是,使用早期版本时会出现错误消息:
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.0.0"
但这可行:
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.1.0"
答案 4 :(得分:0)
您似乎正在使用两个不同版本的androidX生命周期库。
将您的app/build.gradle
更改为:
...
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-alpha01"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-alpha01"
implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0-alpha01"
kapt "androidx.lifecycle:lifecycle-compiler:2.2.0-alpha01"
...
答案 5 :(得分:0)
有关工件的最新版本,请参考 Maven Repository Android Lifecycle ViewModel Kotlin Extensions
在应用程序级别的build.gradle文件中添加以下内容:-
def lifecycle_version = "2.2.0-rc03"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
请不要忘记在app / build.gradle文件顶部添加apply plugin: 'kotlin-kapt'
答案 6 :(得分:0)
还要检查您是否在正确的文件中。我有相同的问题片刻,来到了此页面,但是后来,我意识到我不小心尝试在我的 Fragment 上运行Eigenvectors of the centered kernel matrix. If n_components and remove_zero_eig are not set, then all components are stored.
。
viewModelScope.launch
仅在您的ViewModels和
viewModelScope.launch
在您的生命周期感知组件中。