Java Dagger是否可以在不注入子活动类的情况下注入抽象活动类?

Java Dagger是否可以在不注入子活动类的情况下注入抽象活动类?,java,android,dependency-injection,dagger,Java,Android,Dependency Injection,Dagger,我正试图在我的应用程序中实现Dagger,我有一个实例,需要在活动类层次结构中的类中注入一个字段,但该类的子类不需要注入任何成员。层次结构如下所示: 基本活动->导航活动->主页活动 我试图在NavigationActivity中注入一个字段,但Dagger出现以下异常: java.lang.IllegalArgumentException: No inject registered for members/com.quidsi.diapers.activity.HomePageActivity

我正试图在我的应用程序中实现Dagger,我有一个实例,需要在活动类层次结构中的类中注入一个字段,但该类的子类不需要注入任何成员。层次结构如下所示:

基本活动->导航活动->主页活动

我试图在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可以做到的,还是我需要注射导航活动的每个子项?

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


Dagger 2即将推出,可能那里的情况已经发生了变化。

Dagger 2还要求注入子类,但如果组件接口方法中缺少给定的
void inject(SomethingActivity SomethingActivity)
,它会引发编译错误而不是运行时错误。