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

求助:无法解析DefaultActivityViewModelFactory的Hilt依赖注入问题

Hilt集成报错:dagger.hilt.android.internal.lifecycle.DefaultActivityViewModelFactory无法解析的解决方案

核心问题定位

你当前使用的androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03是过时的测试版本,与你引入的Hilt 2.44主库版本不兼容。从Hilt 2.31版本开始,ViewModel的Hilt集成逻辑已经合并到主Hilt库中,不再需要单独依赖这个旧的androidx.hilt库,版本不匹配导致内部Factory类无法被正确解析。

具体修复步骤

  1. 移除过时依赖
    打开模块级build.gradle,删除以下依赖行:

    implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03"
    
  2. 确认关键配置(你已完成,再次核对)

    • SharedViewModel需正确使用@HiltViewModel注解,构造函数添加@Inject:
      @HiltViewModel
      class SharedViewModel @Inject constructor(private val noteUseCase: NoteUseCase) : ViewModel() {...}
      
    • 宿主MainActivity必须添加@AndroidEntryPoint注解,因为通过activityViewModels()获取ViewModel时,Activity需要作为Hilt的注入节点。
  3. 清理并重建项目
    在Android Studio中执行:Build -> Clean Project,然后Build -> Rebuild Project,清除旧编译缓存,确保新依赖生效。

额外潜在问题排查

你的自定义Application类命名为Application,容易与系统的android.app.Application类名冲突,建议重命名为NoteApplication或其他名称,并在AndroidManifest.xml中正确配置:

<application
    android:name=".NoteApplication"
    ...>
    ...
</application>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:40:43