You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hilt多模块架构中无法创建HomeViewModel实例的问题咨询

问题解决:Hilt多模块下无法创建HomeViewModel实例
  • 必须给HomeFragment添加@AndroidEntryPoint注解
    Hilt需要通过@AndroidEntryPoint标记Activity、Fragment等Android组件,才能为其内部的依赖(包括ViewModel)提供注入能力。如果Fragment没有添加该注解,Hilt无法介入ViewModel的创建流程,自然无法实例化带有@HiltViewModel的HomeViewModel,就会抛出java.lang.RuntimeException: Cannot create an instance of class HomeViewModel异常。

  • 修改后的HomeFragment代码:

@AndroidEntryPoint
class HomeFragment: Fragment() {
    private val viewModel: HomeViewModel by viewModels()
    ...
}
  • 额外检查点:
    1. 确保你的Application类已添加@HiltAndroidApp注解,这是Hilt的全局入口,所有注入操作都依赖它:
      @HiltAndroidApp
      class MyApp : Application()
      
    2. 确认featureHome模块的build.gradle已引入正确的Hilt依赖(版本需与app模块保持一致):
      implementation "com.google.dagger:hilt-android:2.48"
      kapt "com.google.dagger:hilt-android-compiler:2.48"
      
    3. 检查HomeViewModel的注解和继承是否正确,确保导入的是androidx.lifecycle.ViewModel类:
      @HiltViewModel
      class HomeViewModel @Inject constructor() : ViewModel() {
          ....
      }
      

内容的提问来源于stack exchange,提问作者Biscuit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 02:37:03