Ei, estou tentando fazer meu ViewModel funcionar, mas sem sorte até agora. O Android Studio mostra um erro Cannot resolve symbol 'ViewModelProviders'
.
Cada outra pergunta que eu encontrei sobre este tema foi corrigindo extends Activity
a extends AppCompatActivity
, mas eu estou estendendo o caminho certo. Não tenho certeza do que estou perdendo ...
Meu código é baseado neste vídeo do 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
instrução ou tem, mas não tem a dependência na configuração do Gradle.ViewModel
no pacote diferente e está importando-a de láRespostas:
Eu não tinha as duas dependências em minha construção, daí o problema.
Obrigado @Muthukrishnan Rajendran
fonte
Se você estiver usando,
androidx
você precisa disso:fonte
Se você estiver usando o SDK compilado versão 28 ou superior, você só precisa adicionar uma dependência única para obter
ViewModel
eLiveData
fonte
android.arch.lifecycle:extensions
você pode pesquisarextensions
em maven.google.com/web/index.html e ver a versão mais recenteCrie uma instância de viewmodel como este:
fonte
você deve adicionar biblioteca no build.gradle do seu projeto
def lifecycle_version = "2.0.0"
fonte
Eu resolvo esse problema com a documentação oficial do Android . Adicione abaixo para
build.grale
fonte
No meu caso (Android Studio 3.6.3),
AppCompatActivity
para fazer com sucesso:é necessário:
(sozinho com
lifecycle-extentions
não foi suficiente)fonte
No arquivo build.gradle, adicione essas linhas no bloco de dependências
fonte
Use
androix
bibliotecasmudança
implementation 'com.android.support:appcompat-v7:28.0.0'
para
implementation 'androidx.appcompat:appcompat:1.1.0-alpha03'
Você pode usar
fonte
Na implementação "androidx.lifecycle: lifecycle-extensions: 2.2.0" e superior ViewModelProviders está obsoleto, use
ou em Kotlin
ao invés de
fonte
- ' ViewModelProviders ' está obsoleto agora
viewModel = ViewModelProvider(this).get(BaseViewModel.class);
var viewModel = ViewModelProvider(this).get(BaseViewModel::class.java)
Refs - https://developer.android.com/reference/androidx/lifecycle/ViewModelProviders
fonte
Funciona bem no meu aplicativo (java) antes
muda para
espero que possa ajudar
fonte
Em Meu caso, estou enfrentando o seguinte problema, ou seja:
Adicionei abaixo as dependências em meu projeto build.gradle .
Então eu crio minha classe em um projeto de módulo e estou enfrentando esse problema, então adiciono essas bibliotecas no arquivo build.gradle do módulo e o problema é resolvido.
fonte
Eu tive o mesmo problema. Nenhuma das outras soluções me ajudou.
Eu percebi que estava usando
import androidx.lifecycle.ViewModelProvider;
vez deimport androidx.lifecycle.ViewModelProviders;
.Portanto, verifique se você está usando
import androidx.lifecycle.ViewModelProviders;
. Isso éViewModelProviders
com ums
.fonte