Я реализую ViewModel с фабрикой ViewModel и получил сбои на некоторых устройствах из-за сбоев в firebase.
приложение не падает, когда я тестирую на своих устройствах.
вот часть кодасвязанные с ViewModel:
в действии (фабрика с кинжалом 2):
myViewModel = ViewModelProviders.of(this, myViewModelFactory).get(MyViewModel.class);
фабрика:
public static class MyViewModelFactory implements ViewModelProvider.Factory {
private final MyRepository myRepository;
@Inject
public MyViewModelFactory(MyRepository myRepository) {
this.myRepository = myRepository;
}
@NonNull
@Override
@SuppressWarnings("unchecked")
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
if (modelClass.isAssignableFrom(MyViewModel.class)) {
return (T) new MyViewModel(myRepository);
}
throw new IllegalArgumentException("Unknown ViewModel class");
}
}
конструктор модели представления:
public class MyViewModel extends ViewModel {
...
public MyViewModel(MyRepository myRepository) {
this.myRepository = myRepository;
}
...
}
исключение, которое я получаю:
Caused by java.lang.InstantiationException: java.lang.Class<....MyViewModel> has no zero argument constructor
at java.lang.Class.newInstance(Class.java)
at androidx.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.java:152)
at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:211)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:135)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:103)
at .....MyActivity.onCreate(MyActivity.java:140)
at android.app.Activity.performCreate(Activity.java:7023)
at android.app.Activity.performCreate(Activity.java:7014)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2745)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2870)
at android.app.ActivityThread.-wrap11(Unknown Source)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1601)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:172)
at android.app.ActivityThread.main(ActivityThread.java:6590)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
есть идеи, что может вызвать проблему?
Спасибо