【发布时间】:2021-02-10 00:54:59
【问题描述】:
当我尝试从 Fragment 初始化 ViewModelProvider 时出现上述错误,如下所示:
//This line gives me the error "Cannot create an instance of class..."
SetViewModel setViewModel = new ViewModelProvider(this).get(SetViewModel.class);
final MyListAdapter adapter = new MyListAdapter(this.getActivity(), setViewModel, items);
theListView.setAdapter(adapter);
我的 SetViewModel 类:
public class SetViewModel extends AndroidViewModel {
private Repository repository;
private static Flowable<List<Set>> sets = null;
public SetViewModel(Application application) {
super(application);
repository = new Repository(application);
}...
我的错误:
2021-02-09 19:51:22.171 22202-22202/com.example.xxxxxxx E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.xxxxxxx, PID: 22202
java.lang.RuntimeException: Cannot create an instance of class com.example.xxxxxxx.xxxxxxx.SetViewModel
at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:275)
at androidx.lifecycle.SavedStateViewModelFactory.create(SavedStateViewModelFactory.java:106)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:185)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150)
at com.example.xxxxxxx.xxxxxxx.MyFragment.onCreateView(MyFragment.java:88)
提前致谢。
附:我会添加更多错误,但它已经说我有太多代码要通过编辑发布。
【问题讨论】:
-
请包括完整的例外情况以及您正在使用的片段版本(最好是您的
build.gradle文件中的整个dependencies块)。
标签: java android android-studio android-fragments viewmodel