未解决的参考:viewModelScope-Kotlin Android

Lop*_*ier 5 android kotlin android-gradle-plugin kotlin-android-extensions kotlin-coroutines

我尝试将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"
Run Code Online (Sandbox Code Playgroud)

当我在viewModel中键入viewModelScope时说Unresolved reference: viewModelScope

j2e*_*nue 39

目前它处于 alpha 阶段,因此请更新您的 gradle 以使用以下依赖项:

implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0"
Run Code Online (Sandbox Code Playgroud)


Fer*_*ano 7

我遇到了同样的问题,我刚刚导入: "androidx.navigation:navigation-fragment-ktx:2.2.0-rc03" "androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-rc03" 即使我认为 fragment-ktx 并没有真正相关。我花了一段时间才弄清楚。希望能帮助到你!

  • 有人可以解释为什么“androidx.navigation:navigation-fragment-ktx”与 viewModelScope 相关吗? (2认同)

小智 6

就我而言,我忘记在该类中扩展 ViewModel,您用于 viewModelScope 的类必须与yourModelClass : ViewModel()kotlin 和 java 中的一样yourModelClass extends ViewModel

希望它的帮助


小智 5

还要检查您是否位于正确的文件中。我有一段时间遇到了同样的问题,然后我来到了这个页面,但后来,我意识到我不小心尝试viewModelScope.launch在我的Fragment上运行。

viewModelScope.launchlifecycleScope.launch仅在您的 ViewModel 和生命周期感知组件中可用 。