bismeet marwaha Ответов: 0

Ошибка:(16, 10) ошибка: android.app.fragmentmanager не может быть предоставлен без метода @provides - or @Products-annotated


Я пытаюсь создать макет вкладки . Итак,я пытаюсь внедрить экземпляр FragmentManager для передачи в конструктор ViewPagerAdapter.

Что я уже пробовал:

Модуль:
@Module
public abstract class AppModule {
    @ContributesAndroidInjector(modules = MainActivityModule.class)
     abstract MainActivity mainActivity();
    @Provides
    @Singleton
    static Context getContext(Application application){
        return application.getApplicationContext();
    }

}


AppComponent:
@Singleton
@Component(modules = {MainActivityModule.class, AppModule.class})
public interface AppComponent {
    void inject(MainActivity mainActivity);

    @Component.Builder
    interface Builder {
        AppComponent build();

        @BindsInstance
        Builder buildapp(Application application);
        @BindsInstance
        Builder mainActivityBuilder(MainActivity mainActivity);
    }
}


Модуль MainActivityModule:
@Module
public abstract class MainActivityModule {

    @Provides
    static FragmentManager getFragmentManager(MainActivity mainActivity) {
        return mainActivity.getSupportFragmentManager();
    }
}


MyTabApplication:
public class MyTabApplication extends Application {
    @Inject
    MainActivity mainActivity;
    private static AppComponent appComponent;
    public static AppComponent getAppComponent(){
        return appComponent;
    }
    @Override
    public void onCreate() {
        super.onCreate();
        appComponent=buildMyComponent();
    }

    private AppComponent buildMyComponent() {
        return DaggerAppComponent.builder().buildapp(this).mainActivityBuilder(new MainActivity()).build();
    }
}

0 Ответов