Android 如果没有带有限定依赖项的@Providers注释方法,则无法提供Dagger 2
我试图用匕首2将适配器注入两个不同的碎片中。但要抓住错误 错误:[Dagger/MissingBinding]@javax.inject.Named(“药房”)MedicinesAdapter如果没有@Provides注释方法,则无法提供 这是我的适配器模块Android 如果没有带有限定依赖项的@Providers注释方法,则无法提供Dagger 2,android,dagger-2,Android,Dagger 2,我试图用匕首2将适配器注入两个不同的碎片中。但要抓住错误 错误:[Dagger/MissingBinding]@javax.inject.Named(“药房”)MedicinesAdapter如果没有@Provides注释方法,则无法提供 这是我的适配器模块 @Module class AdapterModule { @Provides fun provideMedicinesAdapter(clickListener: MedicinesAdapter.ClickListen
@Module
class AdapterModule {
@Provides
fun provideMedicinesAdapter(clickListener: MedicinesAdapter.ClickListener): MedicinesAdapter =
MedicinesAdapter(clickListener = clickListener)
@Provides
@Named("pharmacy")
fun provideClickListenerForPharmacy(fragment: PharmacyFragment): MedicinesAdapter.ClickListener =
fragment
@Provides
@Named("medicines")
fun provideClickListenerForMedicines(fragment: MedicinesFragment): MedicinesAdapter.ClickListener =
fragment
}
注入碎片
@field:[Inject Named("medicines")]
lateinit var medicinesAdapter: MedicinesAdapter
我做错了什么?在
适配器模块中
您提供的MedicinesAdapter
没有任何@命名的
参数。但是,在一个片段中,您需要使用@Named(“medicines”)
获取medicinesdapter
字段。您可能忘记为适配器提供程序方法指定@Named
@Provides
@Named("medicines")
fun provideMedicinesAdapter(clickListener: MedicinesAdapter.ClickListener): MedicinesAdapter =
MedicinesAdapter(clickListener = clickListener)