无法使用构造函数创建 class ViewModel 的实例
Cannot create an instance of class ViewModel with constructor
我正在尝试在我的 activity 中使用视图模型,但我的应用程序从视图模型中崩溃并出现错误“无法创建 class 的实例”。 ViewModel 是这样的:
class MyViewModel@Inject constructor(val application: Application) : ViewModel() {
//...
}
在我的 activity 中,我有这个:
class Activity: BaseActivity(){
val viewModel: MyViewModel by viewModels()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
}
如果删除构造函数,我的应用程序可以运行,但我需要获取 packageName,因此我需要上下文或应用程序。
为什么会出现此错误?有什么想法吗?
您可以使用 AndroidViewModel
class MyViewModel@Inject constructor(val application: Application) : AndroidViewModel(application)
如果您使用 Dagger-hilt,则可能无法添加 @HiltViewModel。还要检查你的 activity 是否添加了这个标签 (@AndroidEntryPoint)。
我正在尝试在我的 activity 中使用视图模型,但我的应用程序从视图模型中崩溃并出现错误“无法创建 class 的实例”。 ViewModel 是这样的:
class MyViewModel@Inject constructor(val application: Application) : ViewModel() {
//...
}
在我的 activity 中,我有这个:
class Activity: BaseActivity(){
val viewModel: MyViewModel by viewModels()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
}
如果删除构造函数,我的应用程序可以运行,但我需要获取 packageName,因此我需要上下文或应用程序。
为什么会出现此错误?有什么想法吗?
您可以使用 AndroidViewModel
class MyViewModel@Inject constructor(val application: Application) : AndroidViewModel(application)
如果您使用 Dagger-hilt,则可能无法添加 @HiltViewModel。还要检查你的 activity 是否添加了这个标签 (@AndroidEntryPoint)。