Во-первых, я прогуглил несколько вещей, но не смог этого сделать.У меня есть 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 ()
один и тот же модуль с несколькими компонентами?Большое спасибо заранее!