Dagger2无法提供依赖

时间:2018-07-08 15:51:08

标签: android dependency-injection dagger-2

我尝试在Kotlin中使用Dagger2,但出现此错误

  

错误:[Dagger / MissingBinding]   [com.syouth.tsarz.base.BaseComponent.getNavigationManager()]   没有android.support.v4.app.FragmentManager就无法提供   @提供注释的方法。

我真的很困惑,因为我在模块中提供了FragmentManager:

@Module
class BaseModule {

    @Provides
    @BaseScope
    fun provideFragmentManager(activity: FragmentActivity): FragmentManager = activity.supportFragmentManager

}

这是我的组成部分:

@Subcomponent(modules = [(BaseModule::class)])
@BaseScope
interface BaseComponent {

    fun getNavigationManager(): NavigationManager

    @Subcomponent.Builder
    interface Builder {

        @BindsInstance
        fun activity(activity: FragmentActivity): Builder

        fun build(): BaseComponent
    }
}

通过使用@Inject构造函数和带有@BaseScope批注的类来注入导航管理器

所以基本上我只是想通过一个组件来获得依赖关系,这应该是完全可以的。 我在哪里错了?

1 个答案:

答案 0 :(得分:0)

在范围定义中使用了错误的注释。