我正在尝试在以下U2020中合并repo和Dagger的示例android-activity-graphs
。
但是,我收到编译时错误:
Error:(32, 8) error: No injectable members on android.app.Application. Do you want to add an injectable constructor? required by provideOkHttpClient(android.app.Application) for org.kamol.nefete.ActivityModule
答案 0 :(得分:4)
您尚未绑定Application
,您只绑定了Context
,但是在图表的其他位置,您的某些类型取决于Application
。需要Application
的下游依赖项将尝试隐式绑定它,因为Dagger无法知道Application
可以满足需要@ForApplication Context
的对象。由于Application
没有@Inject构造函数或@Inject字段,因此Dagger将失败。
您只需添加
即可修复您的示例@Provides @Singleton Application provideApplicationContext() {
return application;
}
org.kamol.nefete.AndroidModule
中的
顺便说一句,我建议不要绑定Context
因为它太抽象了超类型而且太容易与Activity
Context
混淆,即使你绑定了@Qualifier
1}}注释,例如@ForApplication Context
。我建议改为绑定Application
并让事情依赖于更具体的类型。