java.lang.RuntimeException: Cannot create an instance of class com.xxx.xxxViewModel

Posted yubo_725

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.lang.RuntimeException: Cannot create an instance of class com.xxx.xxxViewModel相关的知识,希望对你有一定的参考价值。

今天在android项目中使用Hilt做依赖注入,结合Jetpack的ViewModel一起使用,报错如下:

java.lang.RuntimeException: Unable to start activity ComponentInfocom.example.quickandroid/com.example.quickandroid.MainActivity: java.lang.RuntimeException: Cannot create an instance of class com.xx.quickandroid.commonbiz.viewmodel.GitViewModel

排查了好久都不知道问题在哪,后来才发现:

我在子module中依赖了Hilt,而主module中直接依赖了这个子module而没有添加Hilt依赖,导致了上面的问题

如果你也遇到上面的报错信息排查不出问题来,切记检查你所有用到了Hilt的module,一定要在所有module的build.gradle头部添加hilt插件:

apply plugin: 'kotlin-kapt'
apply plugin: 'dagger.hilt.android.plugin'

并在依赖项中添加下面的配置:

implementation "com.google.dagger:hilt-android:2.28-alpha"
kapt "com.google.dagger:hilt-android-compiler:2.28-alpha"

以上是关于java.lang.RuntimeException: Cannot create an instance of class com.xxx.xxxViewModel的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 按钮导致崩溃

添加 ImageView 时应用程序崩溃?