今天在Android项目中使用Hilt做依赖注入,结合Jetpack的ViewModel一起使用,报错如下:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.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"