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 wurde Korrektur extends Activity
an extends AppCompatActivity
, aber ich bin die richtige erstreckt. Ich bin mir nicht sicher, was ich vermisse ...
Mein Code basiert auf diesem YouTube-Video
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
Anweisung verfügen oder dass Sie die Abhängigkeit in Ihrem Gradle-Setup nicht haben.ViewModel
unter dem anderen Paket und importiert sie von dortAntworten:
Ich hatte nicht beide Abhängigkeiten in meinem Build, daher das Problem.
Danke @Muthukrishnan Rajendran
quelle
Wenn Sie verwenden
androidx
, benötigen Sie Folgendes:quelle
Wenn Sie kompilierte SDK-Version 28 oder höher verwenden, müssen Sie nur eine einzige Abhängigkeit hinzufügen, um
ViewModel
und zu erhaltenLiveData
quelle
android.arch.lifecycle:extensions
, können Sieextensions
in maven.google.com/web/index.html suchen und die neueste Version sehenErstellen Sie eine Instanz des Ansichtsmodells wie folgt:
quelle
Sie sollten eine Bibliothek im build.gradle Ihres Projekts hinzufügen
def lifecycle_version = "2.0.0"
quelle
Ich löse dieses Problem aus der offiziellen Android-Dokumentation . Fügen Sie unten hinzu
build.grale
quelle
In meinem Fall (Android Studio 3.6.3),
AppCompatActivity
um erfolgreich zu tun:es wird beides benötigt von:
(allein mit
lifecycle-extentions
war nicht ausreichend)quelle
Fügen Sie in der Datei build.gradle diese Zeilen im Abhängigkeitsblock hinzu
quelle
Verwenden Sie
androix
BibliothekenVeränderung
implementation 'com.android.support:appcompat-v7:28.0.0'
zu
implementation 'androidx.appcompat:appcompat:1.1.0-alpha03'
Sie können verwenden
quelle
In der Implementierung "androidx.lifecycle: Lifecycle-Extensions: 2.2.0" und höher ist ViewModelProviders veraltet
oder in Kotlin
anstatt
quelle
- ' ViewModelProviders ' ist jetzt veraltet
viewModel = ViewModelProvider(this).get(BaseViewModel.class);
var viewModel = ViewModelProvider(this).get(BaseViewModel::class.java)
Refs - https://developer.android.com/reference/androidx/lifecycle/ViewModelProviders
quelle
Funktioniert gut in meiner App (Java) vor
ändert sich zu
hoffe es könnte helfen
quelle
In meinem Fall stehe ich vor dem folgenden Problem:
Ich habe unten Abhängigkeiten in meinem Projekt build.gradle hinzugefügt .
Dann erstelle ich meine Klasse in einem Modulprojekt und stelle dieses Problem fest. Dann füge ich diese Bibliotheken in die Datei module build.gradle ein und das Problem ist behoben.
quelle
Ich hatte das gleiche Problem. Keine der anderen Lösungen hat mir geholfen.
Mir wurde klar, dass ich
import androidx.lifecycle.ViewModelProvider;
statt benutzteimport androidx.lifecycle.ViewModelProviders;
.Stellen Sie also sicher, dass Sie verwenden
import androidx.lifecycle.ViewModelProviders;
. Das istViewModelProviders
mit einems
.quelle