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

Hilt报错:无法提供App类,缺少@Inject构造或@Provides方法

Hilt注入错误:App类无法提供的解决方案

错误原因

你碰到的Dagger/MissingBinding错误,本质是Hilt找不到com.example.assignment.App的注入实例。尽管你给自定义的App类加了@HiltAndroidApp注解,但Hilt默认只会自动提供Application或Context类型的实例,不会直接识别你自定义的App类作为可注入类型。

解决方案

有两种可行的修复方式:

方式一:改用Application作为依赖参数

直接把provideDatabase方法的参数从App替换成Application,Hilt可以自动注入这个类型的实例:

@Provides
@Singleton
fun provideDatabase(app: Application) =
    Room.databaseBuilder(app, AppDatabase::class.java, "app_database").build()

方式二:让Hilt能识别自定义App类

如果你必须依赖自定义的App类,可以二选一:

  1. 给App类添加@Inject构造函数:
@HiltAndroidApp
class App : Application() {
    @Inject
    constructor() : super()
}
  1. 在AppModule中添加一个提供App实例的方法:
@Module
@InstallIn(SingletonComponent::class)
object AppModule {
    // 其他方法保持不变
    @Provides
    @Singleton
    fun provideApp(app: Application): App = app as App
}

后续验证

修改完成后,执行Clean Project再Rebuild Project,确保Hilt重新生成注入代码。同时检查gradle配置中Hilt相关依赖是否正确引入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:26:14