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

Hilt依赖注入无法注入ApplicationContext的MissingBinding报错如何解决

问题根因

报错是因为你在AppModule中注入@ApplicationContext时参数类型使用错误,Hilt 内置提供的@ApplicationContext限定符对应可注入的类型是android.content.Context或android.app.Application,并非你代码中使用的ApplicationContext类,导致Dagger找不到对应类型的实例提供方。

解决方案
  1. 首先修改AppModule中getAppPreferences方法的参数类型:
@Module
@InstallIn(SingletonComponent::class)
object AppModule {
    // 其余方法保持不变
    @Provides
    fun getAppPreferences(
        // 把参数类型从ApplicationContext改为Context
        @ApplicationContext context: Context,
        @Named("appName") appName: String
    ):SharedPreferences {
        // 不需要再强制转型,直接调用即可
        return context.getSharedPreferences(appName, Context.MODE_PRIVATE)
    }
}
  1. 检查必备配置项:
  • 确认你的自定义Application类添加了@HiltAndroidApp注解,示例如下:
@HiltAndroidApp
class CarApp : Application() {
    // 应用全局逻辑
}
  • 确认@ApplicationContext的导入包正确,必须为:
import dagger.hilt.android.qualifiers.ApplicationContext
  1. 清理构建缓存后重新编译:执行Android Studio的Build -> Clean Project,再执行Rebuild Project,避免kapt生成的旧缓存文件导致报错残留。

内容的提问来源于stack exchange,提问作者Abbas Khan Waliullahi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:06:01