Dagger可以注入一个抽象的Activity类而不注入子Activity类吗?

时间:2014-10-29 18:25:53

标签: java android dependency-injection dagger

我正在尝试在我的应用程序中实现Dagger并且我有一个实例,我需要在Activity类层次结构中的类中注入一个字段,但是这个类的子节点不需要注入任何成员。层次结构如下所示:

BaseActivity - > NavigationActivity - > HomePageActivity。

我正在尝试在NavigationActivity中注入一个字段但是我从Dagger得到以下异常:

java.lang.IllegalArgumentException: No inject registered for members/com.quidsi.diapers.activity.HomePageActivity. You must explicitly add it to the 'injects' option in one of your modules.

我的模块看起来像这样

@Module(
    injects = NavigationActivity.class
)
public class GestureModule {

    @Provides
    GestureInterface provideGestureInterface() {
        return new MockDrawerGesture();
    }
}

这可能与Dagger有关,还是我需要注入NavigationActivity的每个孩子?

1 个答案:

答案 0 :(得分:2)

Dagger 1是不可能的。您还必须注入子类活动。是的,遗憾的是,这意味着您必须将所有这些类添加到GestureMmodule的注入列表中。

Dagger 2就在拐角处,也许事情发生了变化。