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

Android Dagger2触发[Dagger/MissingBinding] Activity注入绑定缺失报错

问题原因
  • 你的ApplicationComponent没有引入Dagger Android核心的AndroidInjectionModule,这个模块负责提供你注入ActivityInjector需要的Map<Class<? extends Activity>, Provider<AndroidInjector.Factory<? extends Activity>>类型的绑定容器,没有这个模块Dagger没法识别你@Binds @IntoMap @ClassKey标注的Activity注入工厂绑定。
  • 次要问题1:TrendingReposComponent里的Builder类名是小写的builder,不符合Java类名大驼峰规范,会导致后续Controller注入绑定失败。
  • 次要问题2:ActivityBindingModule里绑定MainActivity注入工厂的方法名provideMainActivtyInjector存在拼写错误(Activty少了字母i),虽不影响运行但建议修正。
解决方案
  1. 修改ApplicationComponent的@Component注解,添加AndroidInjectionModule到modules列表:
@Singleton
@Component(modules = {
        AndroidInjectionModule.class, // 新增这行
        ApplicationModule.class,
        ActivityBindingModule.class,
})
public interface ApplicationComponent {
    void inject(A myApplication);
}
  1. 修正TrendingReposComponent的Builder类名:
@ScreenScope
@Subcomponent
public interface TrendingReposComponent extends AndroidInjector<TrendingReposController> {
    // 把小写的builder改成大写Builder
    @Subcomponent.Builder
    abstract class Builder extends AndroidInjector.Builder<TrendingReposController>{

    }
}
  1. 对应修正MainScreenBindingModule里引用Builder的地方:
@Module(subcomponents = {
        TrendingReposComponent.class,
})
public abstract class MainScreenBindingModule {
    @Binds
    @IntoMap
    @ControllerKey(TrendingReposController.class)
    // 把TrendingReposComponent.builder改成TrendingReposComponent.Builder
    abstract AndroidInjector.Factory<? extends Controller> bindingTrendingReposInjector(TrendingReposComponent.Builder builder);

}
  1. (可选)修正ActivityBindingModule里的拼写错误:
@Module(subcomponents = {
        MainActivityComponent.class,
})
public abstract class ActivityBindingModule {
    @Binds
    @IntoMap
    @ClassKey(MainActivity.class)
    // 把Activty改成Activity
    abstract AndroidInjector.Factory<? extends Activity> provideMainActivityInjector(MainActivityComponent.Builder builder);
}

修改完成后clean项目重新编译即可解决该绑定错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:36:04