Как включить модуль в несколько компонентов с Dagger2? - PullRequest
0 голосов
/ 10 декабря 2018

Во-первых, я прогуглил несколько вещей, но не смог этого сделать.У меня есть 2 компонента, которые предназначены для приложения, а другой - для DataBinding, как показано ниже:

AppComponent

@Singleton
@Component(modules = {AndroidSupportInjectionModule.class,
        AppModule.class})
public interface AppComponent extends AndroidInjector<FanseeApp> {

    @Override
    void inject(FanseeApp instance);

    @Component.Builder
    interface Builder {
        @BindsInstance
        AppComponent.Builder application(Application application);

        AppComponent build();
    }
}

BindingComponent

@DataBinding
@Component(dependencies = AppComponent.class, modules = {BindingModule.class, AppModule.class})
public interface BindingComponent extends DataBindingComponent {}

И я хочу использовать SharedPreferences для обоих компонентов.Он помещается в AppModule. Однако я получаю сообщение об ошибке ниже:

[Dagger / MissingBinding] android.app.Application не может быть предоставлено без конструктора @Inject или метода с аннотацией @ Provides.открытый интерфейс BindingComponent extends DataBindingComponent {} ^ android.app.Application внедряется в com.nuhkoca.fansee.di.module.ContextModule.bindsContext (application) android.content.Context внедряется в com.nuhkoca.fansee.di.module.AppModule.provideSharedPreference (context) android.content.SharedPreferences добавляется в com.nuhkoca.fansee.util.PreferenceUtil (sharedPreferences) com.nuhkoca.fansee.util.PreferenceUtil вводится в com.nuhkoca.fdulesee.dibindsSpannableTextBindingAdapter (preferenceUtil) com.nuhkoca.fansee.binding.SpannableTextBindingAdapter предоставляется в androidx.databinding.DataBindingComponent.getSpannableTextBindingAdapter ()

один и тот же модуль с несколькими компонентами?Большое спасибо заранее!
...