Kann Symbol ViewModelProviders auf AppCompatActivity nicht auflösen
Lesezeit: 4 Minuten
Hey, ich versuche, mein ViewModel zum Laufen zu bringen, aber bisher kein Glück. Android Studio zeigt Fehler an Cannot resolve symbol 'ViewModelProviders'.
Jede andere Frage, die ich zu diesem Thema gefunden habe, war eine Korrektur extends Activity zu extends AppCompatActivity, aber ich erweitere das rechte. Ich bin mir nicht sicher, was ich vermisse …
Mein Code basiert auf Dieses YouTube-Video
public class BaseViewModel extends ViewModel {
private Movie[] mMovie;
public void init (Movie[] movies){
this.mMovie = movies;
}
public Movie[] getMovie() {
return mMovie;
}
“Symbol kann nicht aufgelöst werden” bedeutet, dass Sie entweder das nicht haben import -Anweisung, oder Sie haben die Abhängigkeit in Ihrem Gradle-Setup nicht.
– CommonsWare
21. März 2018 um 11:52 Uhr
Überprüfen Sie, ob Sie abhängig sind android.arch.lifecycle:Erweiterungen in build.gradle
– Muthukrishnan Rajendran
21. März 2018 um 11:52 Uhr
Entweder verwendet er eine Bibliothek und hat die Abhängigkeit in der Gradle-Datei hinzugefügt, damit er ViewModel importieren kann, oder er hat eine benutzerdefinierte Klasse ViewModel unter dem anderen Paket und er importiert es von dort
– Akshay Katariya
21. März 2018 um 11:54 Uhr
Hatte keine Erweiterungen als Abhängigkeit. Danke @MuthukrishnanRajendran
– Sheler
21. März 2018 um 13:08 Uhr
Ich hatte nicht beide Abhängigkeiten in meinem Build, daher das Problem.
@Sheler Ihre Antwort ist richtig, aber die Dokumentation ist falsch. In der Dokumentation wird angegeben, dass ViewModel und LiveDat beide in der Implementierung “android.arch.lifecycle:extensions:1.1.1” sind.
– Pritisch
8. Mai 2018 um 11:16 Uhr
Hmm diese Lösung hat mein Problem immer noch nicht gelöst. Ich habe die Implementierung ‘android.arch.lifecycle:extensions:1.1.1’ in meiner App gradle und allprojects {repositories { google() jcenter() } } Gibt es noch etwas, das hinzugefügt werden muss?
– Mustermüll
26. Juni 2018 um 15:03 Uhr
Ich sehe die Klasse ViewModelProvider, aber sie hat nicht die Methode .of(). ViewModelProviders ist noch nicht definiert. Ich bin auf einem Mac, falls das wichtig ist.
– Mustermüll
26. Juni 2018 um 15:06 Uhr
Gibt es eine min. SDK- oder Java 8-Definition, die dem Projekt hinzugefügt werden muss?
– Mustermüll
26. Juni 2018 um 15:14 Uhr
Macht nichts. Stellen Sie sicher, dass Sie Ihre Gradles-Dateien synchronisieren, wenn sie nicht angezeigt werden.
Für alle anderen, die dieses Problem haben, benötigen Sie auch dies in Ihrem App-Gradle: apply plugin: ‘androidx.navigation.safeargs’ und das in Ihrem Android-Gradle: classpath “android.arch.navigation:navigation-safe-args-gradle-plugin :1.0.0-alpha06” Wenn Sie Probleme haben, diese Dinge zu platzieren, schauen Sie in der Android-Sunflower-Demo-App von Google nach.
Yourclass obj = new ViewModelProvider(context).get(ClassViewModel.class);
Kotlin
var obj = ViewModelProvider(context).get(ClassViewModel::class.java)
Wenn Sie die kompilierte SDK-Version 28 oder höher verwenden, müssen Sie nur eine einzelne Abhängigkeit hinzufügen, um zu erhalten ViewModel und LiveData
“Symbol kann nicht aufgelöst werden” bedeutet, dass Sie entweder das nicht haben
import
-Anweisung, oder Sie haben die Abhängigkeit in Ihrem Gradle-Setup nicht.– CommonsWare
21. März 2018 um 11:52 Uhr
Überprüfen Sie, ob Sie abhängig sind android.arch.lifecycle:Erweiterungen in build.gradle
– Muthukrishnan Rajendran
21. März 2018 um 11:52 Uhr
Entweder verwendet er eine Bibliothek und hat die Abhängigkeit in der Gradle-Datei hinzugefügt, damit er ViewModel importieren kann, oder er hat eine benutzerdefinierte Klasse
ViewModel
unter dem anderen Paket und er importiert es von dort– Akshay Katariya
21. März 2018 um 11:54 Uhr
Hatte keine Erweiterungen als Abhängigkeit. Danke @MuthukrishnanRajendran
– Sheler
21. März 2018 um 13:08 Uhr