У меня есть такая структура проекта:
@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
Что я делаю не так?