githubbrowsersample example android viewmodel android-architecture-components

githubbrowsersample - android architecture components example



No se puede resolver el símbolo ViewModelProviders en AppCompatActivity (7)

En el archivo build.gradle, agregue estas líneas en el bloque de dependencias

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" ... }

Hola, estoy tratando de hacer que mi ViewModel funcione, pero hasta ahora no he tenido suerte. Android Studio muestra un error Cannot resolve symbol ''ViewModelProviders'' .

Todas las demás preguntas que encontré sobre este tema estaban corrigiendo extends Activity para extends AppCompatActivity , pero estoy extendiendo la correcta. No estoy seguro de lo que me estoy perdiendo ...
Mi código se basa en este video de 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; }


No tenía ambas dependencias en mi compilación, de ahí el problema.

implementation "android.arch.lifecycle:extensions:1.1.0" implementation "android.arch.lifecycle:viewmodel:1.1.0"

Gracias @Muthukrishnan Rajendran


Resuelvo este problema de la documentación oficial de Android . Agregue a continuación a build.grale

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


Si está usando androidx , necesita esto:

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


Si está utilizando SDK compilado versión 28 o superior, solo necesita agregar una dependencia única para obtener ViewModel y LiveData

dependencies { //... def lifecycle_version = "1.1.1" // ViewModel and LiveData implementation "android.arch.lifecycle:extensions:$lifecycle_version" }


Utilice androix bibliotecas de androix

Cambio

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

a

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

Puedes usar

Refactor>Migrate to AndroidX


debe agregar la biblioteca en build.gradle de su proyecto

def lifecycle_version = "2.0.0"

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