首先,我用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()
我如何具有包含多个组件的相同模块?提前非常感谢!