无法使用构造函数创建 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)。