Я пытаюсь добавить базу данных комнат с Android ViewModel. Я перешел по этой ссылке для того же https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#13
Я получаю исключение:
Причина: java .lang.RuntimeException: Невозможно создать экземпляр класса com.example.dailyfaithapp.ViewModels.FavouritesViewModel
Я проверил несколько вопросов и ответов по SO, но ни один из них не работает для меня.
Вот моя модель представления
public class FavouritesViewModel extends ViewModel {
public FavouriteRepository mRepository;
public LiveData<List<Favourites>> mAllFavourites;
public FavouritesViewModel (Application application) {
mRepository = new FavouriteRepository(application);
mAllFavourites = mRepository.getmAllFavourites();
}
public LiveData<List<Favourites>> getmAllFavourites() { return mAllFavourites; }
public void insert(Favourites favourites) { mRepository.insertFavourite(favourites); }
}
Я также пытался вызвать модель View с использованием фабрики модели представления, но здесь это не сработало.
public class FavouritesViewModelFactory implements ViewModelProvider.Factory {
private Application mApplication;
private String mParam;
public FavouritesViewModelFactory(Application application) {
mApplication = application;
}
@Override
public <T extends ViewModel> T create(Class<T> modelClass) {
return (T) new FavouritesViewModel(mApplication);
}
}
Я создаю такой экземпляр после попытки многих опций, следующих за SO:
favouritesViewModel = new ViewModelProvider(this,
new ViewModelProvider.NewInstanceFactory()).get(FavouritesViewModel.class);
Вот мой грейдл
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.wdullaer:materialdatetimepicker:4.2.3'
implementation 'com.jaeger.statusbarutil:library:1.4.0'
implementation 'androidx.viewpager2:viewpager2:1.1.0-alpha01'
implementation "com.github.skydoves:balloon:1.1.5"
implementation 'com.afollestad.material-dialogs:core:3.3.0'
annotationProcessor 'org.projectlombok:lombok:1.18.12'
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
// Test helpers
testImplementation "androidx.room:room-testing:$room_version"
Пожалуйста, помогите. Спасибо.