如何使用Dagger2将模块包含到多个组件中?

时间:2018-12-09 22:38:35

标签: android data-binding dagger-2

首先,我用Google搜索了几件事,但未能成功。我有两个用于应用程序的组件,另一个用于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扩展了DataBindingComponent {}          ^         android.app.Application被注入             com.nuhkoca.fansee.di.module.ContextModule.bindsContext(应用程序)         android.content.Context被注入             com.nuhkoca.fansee.di.module.AppModule.provideSharedPreference(上下文)         android.content.SharedPreferences被注入             com.nuhkoca.fansee.util.PreferenceUtil(sharedPreferences)         com.nuhkoca.fansee.util.PreferenceUtil在以下位置注入             com.nuhkoca.fansee.di.module.BindingModule.bindsSpannableTextBindingAdapter(preferenceUtil)         com.nuhkoca.fansee.binding.SpannableTextBindingAdapter在以下位置提供             androidx.databinding.DataBindingComponent.getSpannableTextBindingAdapter()

我如何具有包含多个组件的相同模块?提前非常感谢!

0 个答案:

没有答案