Привет, я пытаюсь заставить мою ViewModel работать, но пока безуспешно. Android Studio показывает ошибку Cannot resolve symbol 'ViewModelProviders'
.
Любой другой вопрос , который я нашел на эту тему исправлял extends Activity
к extends AppCompatActivity
, но я простирающийся правильный. Не уверен, что мне не хватает ...
Мой код основан на этом видео 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
инструкции, либо она есть, но у вас нет зависимости в вашей настройке Gradle.ViewModel
в другом пакете, и он импортирует его оттудаОтветы:
В моей сборке не было обеих зависимостей, отсюда и проблема.
Спасибо @Muthukrishnan Rajendran
источник
Если вы используете,
androidx
вам нужно это:источник
Если вы используете скомпилированный SDK версии 28 или выше, вам нужно только добавить одну зависимость, чтобы получить
ViewModel
иLiveData
источник
android.arch.lifecycle:extensions
вы можете выполнить поискextensions
в maven.google.com/web/index.html и увидеть последнюю версиюСоздайте экземпляр модели просмотра следующим образом:
источник
вы должны добавить библиотеку в свой проект build.gradle
def lifecycle_version = "2.0.0"
источник
Я решаю эту проблему из официальной документации Android . Добавить ниже в
build.grale
источник
В моем случае (Android Studio 3.6.3) в
AppCompatActivity
для успешного выполнения:необходимы оба:
(наедине с собой
lifecycle-extentions
было недостаточно)источник
В файле build.gradle добавьте эти строки в блок зависимостей
источник
Использовать
androix
библиотеки+ Изменить
implementation 'com.android.support:appcompat-v7:28.0.0'
в
implementation 'androidx.appcompat:appcompat:1.1.0-alpha03'
Ты можешь использовать
источник
В реализации "androidx.lifecycle: lifecycle-extensions: 2.2.0" и выше ViewModelProviders устарела, используйте
или в Котлине
вместо того
источник
- « ViewModelProviders » является устаревшим в настоящее время
viewModel = ViewModelProvider(this).get(BaseViewModel.class);
var viewModel = ViewModelProvider(this).get(BaseViewModel::class.java)
Ссылки - https://developer.android.com/reference/androidx/lifecycle/ViewModelProviders
источник
Прекрасно работает в моем приложении (java) до
изменения к
надеюсь, это может помочь
источник
В моем случае я столкнулся с проблемой ниже, а именно:
Я добавил ниже зависимости в свой проект build.gradle .
Затем я создаю свой класс в проекте модуля и сталкиваюсь с этой проблемой, затем добавляю эти библиотеки в файл build.gradle модуля, и проблема решается.
источник
У меня такая же проблема. Ни одно другое решение мне не помогло.
Я понял, что использую
import androidx.lifecycle.ViewModelProvider;
вместоimport androidx.lifecycle.ViewModelProviders;
.Поэтому убедитесь, что вы используете
import androidx.lifecycle.ViewModelProviders;
. То естьViewModelProviders
с файломs
.источник