在带有dagger2的片段中使用活动级别依赖项

时间:2019-03-21 13:18:02

标签: android dependency-injection dagger-2

我有一个这样的项目结构:

@Component(modules = {AndroidSupportInjectionModule.class, AppModule.class, 
ActivityBinderModule.class})
public interface ApplicationComponent extends AndroidInjector<MyApplication> 
{...}

我在AppModule

中定义了一堆应用程序级别的依赖项
@Module
public abstract class ActivityBinderModule {

@ActivityScope
@ContributesAndroidInjector(modules = {MainActivityModule.class, FragmentBinderModule.class})
abstract MainActivity bindMainActivity();
}

我在MainActivityModule中定义了一些活动级别相关性,例如FragmentManager

@Module
public abstract class FragmentBinderModule {

@ContributesAndroidInjector(modules = MainPageModule.class)
@FragmentScope
abstract MainPageFragment provideMainPageFragment();
}

我在MainPageFragment中定义了MainPageModule特定的依赖项,例如DialogFactory(受@FragmentScope约束),需要FragmentManager

我想使用FragmentManagerMainActivityModule提供的DialogFactory实例,但出现错误:

FragmentManager cannot be provided without an @Provides-annotated method.

当我在FragmentManager中为MainPageModule添加提供程序时,出现此错误:

FragmentManager is bound multiple times: MainActivityModule and MainPageModule

我在做什么错了?

0 个答案:

没有答案