Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ViewModel在java.lang.Class.newInstance中没有零参数构造函数_Android_Kotlin_Dagger 2 - Fatal编程技术网

Android ViewModel在java.lang.Class.newInstance中没有零参数构造函数

Android ViewModel在java.lang.Class.newInstance中没有零参数构造函数,android,kotlin,dagger-2,Android,Kotlin,Dagger 2,注:在标记为副本之前,请仔细阅读。我已经尝试了所有现有的答案 我用的是匕首2 视图模型实例已在活动中成功创建,但当我从同一活动打开BottomSheetDialog时,无法创建实例 private val searchViewModel: SearchViewModel by activityViewModels() 日志: ui.search.viewmodel.SearchViewModel>没有零参数构造函数 位于java.lang.Class.newInstance(本机方法) 在an

注:在标记为副本之前,请仔细阅读。我已经尝试了所有现有的答案

我用的是匕首2

视图模型实例已在活动中成功创建,但当我从同一活动打开BottomSheetDialog时,无法创建实例

private val searchViewModel: SearchViewModel by activityViewModels()
日志:

ui.search.viewmodel.SearchViewModel>没有零参数构造函数 位于java.lang.Class.newInstance(本机方法) 在androidx.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.java:219)中 在androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:278) 在androidx.lifecycle.SavedStateViewModelFactory.create(SavedStateViewModelFactory.java:106) 位于androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:185) 位于androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150) 位于androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:54) 位于androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:41)


在dagger 2中,无论何时创建共享视图模型,我们都必须这样编写工厂:

@Provides
fun providesSearchViewModel(
    activity: SearchActivity,
    factory: ViewModelProvider.Factory
): SearchViewModel {
    return ViewModelProvider(activity, factory).get(SearchViewModel::class.java)
}

您如何验证它是“在活动中成功创建的”?您的SearchViewModel的构造函数是什么样子的?我正在使用该ViewModel来获取数据,然后不会崩溃。您没有通过activityViewModels()将任何工厂传递给
。你在哪里定义你的自定义视图模型工厂?@ianhanniballake你是对的,我错过了这个