【发布时间】:2018-07-08 15:51:08
【问题描述】:
我尝试在 Kotlin 中使用 Dagger2 但出现此错误
错误:[Dagger/MissingBinding] [com.syouth.tsarz.base.BaseComponent.getNavigationManager()] android.support.v4.app.FragmentManager 不能在没有 @Provides-annotated 方法。
我真的很困惑,因为我在我的模块中提供了 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 注释的类来注入的
所以基本上我只是尝试通过一个应该完全没问题的组件来获得依赖。 我哪里错了?
【问题讨论】:
标签: android dependency-injection dagger-2