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

集成Hilt出现Dagger/MissingBinding无法注入BaseApplication如何解决

报错原因

[Dagger/MissingBinding] 提示无法提供BaseApplication实例,是因为Hilt默认仅会注入Application父类类型的实例,你在AppModule中直接依赖自定义子类BaseApplication作为入参时,Hilt没有对应的绑定规则,无法识别提供该实例。

解决方案

二选一即可:

方案1:修改provideContext方法入参类型(推荐,更简洁)

把provideContext的入参从BaseApplication改成Hilt默认支持的Application类型,无需额外添加其他代码:

@Singleton
@Provides
fun provideContext(application: Application): Context {
    return application.applicationContext
}

方案2:显式提供BaseApplication绑定规则(业务需要注入BaseApplication实例时选这个)

在AppModule中新增一个Provides方法,把Hilt默认提供的Application实例转成你自定义的BaseApplication:

@Singleton
@Provides
fun provideBaseApplication(application: Application): BaseApplication {
    return application as BaseApplication
}

修改完成后重新编译项目即可。

额外排查项
  • 检查AndroidManifest.xml的application节点的android:name属性,是否已经配置为你自定义的BaseApplication全类名,未配置的话Hilt无法初始化自定义Application实例。
  • 修改代码后如果仍报错,先执行Build -> Clean Project,再执行Rebuild Project,清空之前Hilt生成的缓存代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:06:03