it-swarm.com.de

Symbol kann ViewModelProviders in AppCompatActivity nicht aufgelöst werden

Hey, ich versuche mein ViewModel zum Laufen zu bringen, aber bisher kein Glück. Android Studio zeigt den Fehler Cannot resolve symbol 'ViewModelProviders' an. 

Jede andere Frage, die ich zu diesem Thema fand, korrigierte extends Activity zu extends AppCompatActivity, aber ich erweitere die richtige. Nicht sicher, was mir fehlt ...
Mein Code basiert auf Dieses 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;
}
58
Sheler

Ich hatte nicht beide Abhängigkeiten in meinem Build, daher das Problem. 

implementation "Android.Arch.lifecycle:extensions:1.1.0"
implementation "Android.Arch.lifecycle:viewmodel:1.1.0"

Vielen Dank @Muthukrishnan Rajendran

123
Sheler

Wenn Sie androidx verwenden, benötigen Sie Folgendes:

implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-rc01'
23
Babao

Wenn Sie die kompilierte SDK-Version 28 oder höher verwenden, müssen Sie nur einzelne Abhängigkeiten hinzufügen, um ViewModel und LiveData zu erhalten

dependencies {
    //...
    def lifecycle_version = "1.1.1"

    // ViewModel and LiveData
    implementation "Android.Arch.lifecycle:extensions:$lifecycle_version"
}
8
L-X

Ich löse dieses Problem von Android offizielle Dokumentation . Füge unten zu build.grale hinzu

def lifecycle_version = "2.0.0"
// ViewModel and LiveData
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
2
shellhub

Fügen Sie in der Datei build.gradle diese Zeilen im Abhängigkeitsblock hinzu

dependencies {
...
def lifecycle_version = "1.1.1"
// ViewModel and LiveData
implementation "Android.Arch.lifecycle:extensions:$lifecycle_version"
//if not using Java 8,use the following line
annotationProcessor "Android.Arch.lifecycle:compiler:$lifecycle_version"
//if using Java 8,ignore above line and add the following line
implementation "Android.Arch.lifecycle:common-Java8:$lifecycle_version"
...
}

 Sample Image of build.gradle file

2
Sulav Timsina

Verwenden Sie androix Bibliotheken

Veränderung

implementation 'com.Android.support:appcompat-v7:28.0.0'

zu

implementation 'androidx.appcompat:appcompat:1.1.0-alpha03'

Sie können verwenden

Refactor>Migrate to AndroidX
1
Sebastian Duran

sie sollten dem build.gradle Ihres Projekts eine Bibliothek hinzufügen

def lifecycle_version = "2.0.0"

// ViewModel and LiveData
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
0