未解决的参考:viewModelScope - Kotlin Android
Unresolved reference: viewModelScope - Kotlin Android
我尝试将 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
。
目前处于 alpha 阶段,因此请更新您的 gradle 以使用以下依赖项:
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.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"
...
有关工件的最新版本,请参阅
Maven 存储库 Android 生命周期视图模型 Kotlin 扩展
在应用级别 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'
我遇到了同样的问题,我刚刚导入了:
"androidx.navigation:navigation-fragment-ktx:2.2.0-rc03"
"androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-rc03"
尽管我认为 fragment-ktx 并没有真正相关。我花了一段时间才弄明白。希望对您有所帮助!
在我的例子中,我忘记扩展 ViewModel class,你用于 viewModelScope 的 class 必须像 kotlin 中的 yourModelClass : ViewModel()
和 java yourModelClass extends ViewModel
希望对您有所帮助
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"
同时检查您是否位于正确的文件中。我有一段时间遇到了同样的问题,我来到了这个页面,但后来,我意识到我不小心试图在我的 Fragment 上 运行 viewModelScope.launch
。
viewModelScope.launch
仅在您的 ViewModel 中可用,并且
lifecycleScope.launch
在您的生命周期感知组件中。
也许您没有使用 ViewModel class
扩展 activityViewModel
class SampleActivityViewModel: ViewModel() {
fun getData(){
viewModelScope.launch{
// Make an API call
}
}
}
我尝试将 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
。
目前处于 alpha 阶段,因此请更新您的 gradle 以使用以下依赖项:
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.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"
...
有关工件的最新版本,请参阅 Maven 存储库 Android 生命周期视图模型 Kotlin 扩展
在应用级别 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'
我遇到了同样的问题,我刚刚导入了:
"androidx.navigation:navigation-fragment-ktx:2.2.0-rc03"
"androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-rc03"
尽管我认为 fragment-ktx 并没有真正相关。我花了一段时间才弄明白。希望对您有所帮助!
在我的例子中,我忘记扩展 ViewModel class,你用于 viewModelScope 的 class 必须像 kotlin 中的 yourModelClass : ViewModel()
和 java yourModelClass extends ViewModel
希望对您有所帮助
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"
同时检查您是否位于正确的文件中。我有一段时间遇到了同样的问题,我来到了这个页面,但后来,我意识到我不小心试图在我的 Fragment 上 运行 viewModelScope.launch
。
viewModelScope.launch
仅在您的 ViewModel 中可用,并且
lifecycleScope.launch
在您的生命周期感知组件中。
也许您没有使用 ViewModel class
扩展 activityViewModelclass SampleActivityViewModel: ViewModel() {
fun getData(){
viewModelScope.launch{
// Make an API call
}
}
}