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

Android中使用Hilt后无法创建ViewModel实例问题求助

解决Hilt无法创建ViewModel实例的崩溃问题

从你的代码和报错日志来看,问题核心出在ViewModel的Hilt注解使用错误,还可能遗漏了Hilt初始化的关键配置,下面一步步来修复:

1. 替换ViewModel的废弃注解

你当前使用的@ViewModelInject是Hilt旧版本的废弃注解,Hilt现在要求ViewModel必须使用@HiltViewModel注解,同时构造函数改用@Inject标记:

修改AllFilesListViewModel类:

import androidx.hilt.lifecycle.HiltViewModel // 导入正确的注解
import androidx.lifecycle.ViewModel

@HiltViewModel // 替换原有的@ViewModelInject
class AllFilesListViewModel @Inject constructor( // 构造函数用@Inject标记
    private val pdfItemRepository: PdfItemRepository
):ViewModel() { }

2. 确保Application类添加@HiltAndroidApp注解

这是Hilt初始化的核心步骤,如果你还没给Application类添加这个注解,必须补上:

import dagger.hilt.android.HiltAndroidApp
import android.app.Application

@HiltAndroidApp
class MyApplication : Application() {
    // 你的Application自定义逻辑(如果有的话)
}

同时别忘了在AndroidManifest.xml里指定这个Application:

<application
    android:name=".MyApplication"
    <!-- 其他原有配置 -->
    >
</application>

3. 检查Hilt依赖是否完整

确保Module级别的build.gradle里添加了正确的Hilt及ViewModel相关依赖(版本号可根据需求兼容更新):

// Hilt核心依赖
implementation "com.google.dagger:hilt-android:2.44"
kapt "com.google.dagger:hilt-compiler:2.44"

// ViewModel与Hilt整合依赖
implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03"
kapt "androidx.hilt:hilt-compiler:1.0.0"

4. 清理并重新构建项目

注解处理器生成的代码可能存在缓存问题,执行Build > Clean Project,再执行Build > Rebuild Project,确保所有Hilt生成的代码都正确更新。

完成以上步骤后,Hilt就能正常创建你的ViewModel实例,崩溃问题即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 07:47:33