Hé, j'essaie de faire fonctionner mon ViewModel, mais pas de chance pour l'instant. Android Studio affiche une erreur Cannot resolve symbol 'ViewModelProviders'
.
Chaque autre question que je trouve sur ce sujet corrigeait extends Activity
à extends AppCompatActivity
, mais je tends la bonne. Je ne sais pas ce qu'il me manque ...
Mon code est basé sur cette vidéo YouTube
MainActivity.java
public class MainActivity extends AppCompatActivity implements
TileAdapter.TileAdapterOnClickHandler {
private BaseViewModel viewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//set Toolbar
Toolbar myToolbar = findViewById(R.id.toolbar);
setSupportActionBar(myToolbar);
//initialize viewModel
viewModel = ViewModelProviders.of(this).get(BaseViewModel.class);
BaseViewModel.java
public class BaseViewModel extends ViewModel {
private Movie[] mMovie;
public void init (Movie[] movies){
this.mMovie = movies;
}
public Movie[] getMovie() {
return mMovie;
}
import
instruction, soit vous l'avez mais vous n'avez pas la dépendance dans votre configuration Gradle.ViewModel
sous le package différent et il l'importe à partir de làRéponses:
Je n'avais pas les deux dépendances dans ma version, d'où le problème.
Merci @Muthukrishnan Rajendran
la source
Si vous utilisez,
androidx
vous en avez besoin:la source
Si vous utilisez sdk compilé version 28 ou supérieure, il vous suffit d'ajouter une seule dépendance pour obtenir
ViewModel
etLiveData
la source
android.arch.lifecycle:extensions
vous pouvez rechercherextensions
dans maven.google.com/web/index.html et voir la dernière versionCréez une instance de viewmodel comme ceci:
la source
vous devez ajouter une bibliothèque dans build.gradle de votre projet
def lifecycle_version = "2.0.0"
la source
Je résous ce problème à partir de la documentation officielle d'Android . Ajouter ci-dessous à
build.grale
la source
Dans mon cas (Android Studio 3.6.3),
AppCompatActivity
pour réussir à faire:il faut à la fois:
(seul avec
lifecycle-extentions
n'était pas suffisant)la source
Dans le fichier build.gradle, ajoutez ces lignes dans le bloc des dépendances
la source
Utiliser les
androix
bibliothèquesChangement
implementation 'com.android.support:appcompat-v7:28.0.0'
à
implementation 'androidx.appcompat:appcompat:1.1.0-alpha03'
Vous pouvez utiliser
la source
Dans la mise en œuvre "androidx.lifecycle: lifecycle-extensions: 2.2.0" et versions ultérieures, ViewModelProviders est obsolète, utilisez
ou à Kotlin
au lieu de
la source
- ' ViewModelProviders ' est désormais obsolète
viewModel = ViewModelProvider(this).get(BaseViewModel.class);
var viewModel = ViewModelProvider(this).get(BaseViewModel::class.java)
Réf - https://developer.android.com/reference/androidx/lifecycle/ViewModelProviders
la source
Fonctionne bien dans mon application (java) avant
changements à
j'espère que ça pourrait aider
la source
Dans mon cas, je suis confronté au problème ci-dessous, à savoir:
J'ai ajouté ci-dessous les dépendances dans mon projet build.gradle .
Ensuite, je crée ma classe dans un projet de module et je suis confronté à ce problème, puis j'ajoute ces bibliothèques dans le fichier module build.gradle et le problème est résolu.
la source
J'ai eu le même problème. Aucune des autres solutions ne m'a aidé.
J'ai réalisé que j'utilisais
import androidx.lifecycle.ViewModelProvider;
au lieu deimport androidx.lifecycle.ViewModelProviders;
.Assurez-vous donc que vous utilisez
import androidx.lifecycle.ViewModelProviders;
. C'estViewModelProviders
avec uns
.la source