Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果没有带有限定依赖项的@Providers注释方法,则无法提供Dagger 2_Android_Dagger 2 - Fatal编程技术网

Android 如果没有带有限定依赖项的@Providers注释方法,则无法提供Dagger 2

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

我试图用匕首2将适配器注入两个不同的碎片中。但要抓住错误

错误:[Dagger/MissingBinding]@javax.inject.Named(“药房”)MedicinesAdapter如果没有@Provides注释方法,则无法提供

这是我的适配器模块

@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)