简体   繁体   English

无法使用构造函数创建类 ViewModel 的实例

[英]Cannot create an instance of class ViewModel with constructor

I'm trying to use the viewmodel in my activity but my app crashes the error "Cannot create an instance of class" from the viewmodel.我正在尝试在我的活动中使用视图模型,但我的应用程序从视图模型中崩溃了错误“无法创建类的实例”。 The ViewModel is like this: ViewModel 是这样的:

class MyViewModel@Inject constructor(val application: Application) : ViewModel() {
   //...
}

In my activity, I have this:在我的活动中,我有这个:

class Activity: BaseActivity(){
       val viewModel: MyViewModel by viewModels()

       override fun onCreate(savedInstanceState: Bundle?) {
                 super.onCreate(savedInstanceState)
       }
}

If I delete the constructor, my app works but I need to get packageName, so I need context or application.如果我删除构造函数,我的应用程序可以工作,但我需要获取 packageName,所以我需要上下文或应用程序。

Why I'm getting this error?为什么我会收到此错误? Any idea?任何想法?

您可以使用 AndroidViewModel

class MyViewModel@Inject constructor(val application: Application) : AndroidViewModel(application)

If you using Dagger-hilt may b you can't add @HiltViewModel.如果您使用 Dagger-hilt 可能无法添加 @HiltViewModel。 also check in your activity whether this tag (@AndroidEntryPoint) is added or not.还要检查您的活动是否添加了此标签(@AndroidEntryPoint)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM