求助:无法解析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类无法被正确解析。
具体修复步骤
移除过时依赖
打开模块级build.gradle,删除以下依赖行:implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03"确认关键配置(你已完成,再次核对)
SharedViewModel需正确使用@HiltViewModel注解,构造函数添加@Inject:@HiltViewModel class SharedViewModel @Inject constructor(private val noteUseCase: NoteUseCase) : ViewModel() {...}- 宿主
MainActivity必须添加@AndroidEntryPoint注解,因为通过activityViewModels()获取ViewModel时,Activity需要作为Hilt的注入节点。
清理并重建项目
在Android Studio中执行:Build -> Clean Project,然后Build -> Rebuild Project,清除旧编译缓存,确保新依赖生效。
额外潜在问题排查
你的自定义Application类命名为Application,容易与系统的android.app.Application类名冲突,建议重命名为NoteApplication或其他名称,并在AndroidManifest.xml中正确配置:
<application android:name=".NoteApplication" ...> ... </application>
内容的提问来源于stack exchange,提问作者aymen
相关产品推荐
相关产品推荐

