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

Android Hilt出现error.NonExistentClass错误,请求问题排查

Android Hilt 依赖注入错误排查:NonExistentClass 关联 LazyClassKey

问题描述

我正在学习Android Hilt,已为Activity添加@AndroidEntryPoint注解,ViewModel配置了@HiltViewModel注解,同时创建了Module类。但目前遇到如下错误:

依赖追踪:
=> element (CLASS): kr.co.example.viewmodel.TestViewModel_HiltModules.BindsModule
=> element (METHOD): binds(kr.co.example.viewmodel.TestViewModel)
=> annotation type: LazyClassKey
=> type (ERROR annotation type): error.NonExistentClass

相关代码截图:

  • [Activity代码截图]
  • [ViewModel代码截图]
  • [Module代码截图]

排查及解决办法

1. 统一Hilt相关依赖版本

检查项目根目录build.gradle和模块build.gradle中所有Hilt相关依赖的版本是否一致,包括hilt-android、hilt-compiler、hilt-lifecycle-viewmodel等,版本不匹配容易触发此类编译错误。

2. 检查ViewModel构造函数

确认TestViewModel的构造函数是否添加了@Inject注解,且构造函数的所有参数都能被Hilt提供(参数类要么自带@Inject构造,要么在Module中完成绑定)。

3. 验证Module配置正确性

  • 确保Module类添加了@Module和@InstallIn注解,根据依赖作用域选择合适的Component(如给ViewModel提供依赖可使用@InstallIn(SingletonComponent::class))。
  • 检查@Binds注解的绑定方法,确认返回类型与参数类型的对应关系,避免类名拼写错误。

4. 清理编译缓存

执行以下操作后重新编译:

  • 点击Build -> Clean Project,再执行Build -> Rebuild Project
  • 删除项目目录下的.gradle、.idea文件夹及build目录,重新同步Gradle项目

5. 补充必要依赖

确保模块build.gradle中添加了ViewModel与Hilt结合所需的依赖:

implementation "com.google.dagger:hilt-android:对应版本号"
kapt "com.google.dagger:hilt-compiler:对应版本号"
implementation "androidx.hilt:hilt-lifecycle-viewmodel:对应版本号"
kapt "androidx.hilt:hilt-compiler:对应版本号"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 13:47:07