我有一个这样的项目结构:
@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
我想使用FragmentManager
中MainActivityModule
提供的DialogFactory
实例,但出现错误:
FragmentManager cannot be provided without an @Provides-annotated method.
当我在FragmentManager
中为MainPageModule
添加提供程序时,出现此错误:
FragmentManager is bound multiple times: MainActivityModule and MainPageModule
我在做什么错了?