web-dev-qa-db-fra.com

Référence non résolue: viewModelScope - Kotlin Android

J'essaie d'ajouter viewModelScope à un viewModel de base mais Android studio ne le reconnaît pas.

J'ai essayé de changer mon fichier de construction gradle avec une solution que j'ai trouvée mais rien ne fonctionne.

Voici un extrait de mon application 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"

Lorsque je tape viewModelScope dans mon viewModel, il dit Unresolved reference: viewModelScope.

7
LopsemPyier

Pour la dernière version de l'artefact, reportez-vous à Maven Repository Android Lifecycle ViewModel Kotlin Extensions

Dans le fichier build.gradle au niveau de l'application, ajoutez ce qui suit: -

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"

N'oubliez pas d'ajouter apply plugin: 'kotlin-kapt' en haut du fichier app/build.gradle

0
Rakhi Dhavale

Il semble que vous ayez deux versions différentes des bibliothèques de cycle de vie androidX en cours d'utilisation.

Change ton app/build.gradle être:

...
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"
...
0
Cory Roy

J'ai eu le même problème et je viens d'importer: "androidx.navigation:navigation-fragment-ktx:2.2.0-rc03" "androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-rc03" Même si je pensais que fragment-ktx n'était pas vraiment lié. Cela m'a pris un certain temps pour comprendre cela. J'espère que ça aide!

0
Fernando Prieto