I saw the same question in stack but they try to fix the error with the @ContributesAndroidInjector
but in Dagger
documentation says use @ContributesAndroidInjector
is only optional, so here are my classes:
My MainActivityComponent
:
@Subcomponent(modules = [
MainBuilder::class
])
@ActivityScope
interface MainComponent: AndroidInjector<MainActivity>{
@Subcomponent.Factory
interface Factory: AndroidInjector.Factory<MainActivity>
}
My AplicationBinder
:
@Module(subcomponents = [
MainComponent::class
])
abstract class AppBuilder {
@Binds
@IntoMap
@ClassKey(MainActivity::class)
abstract fun mainActivityFactoryBind(factory: MainComponent.Factory): AndroidInjector.Factory<out Activity>
}
And my BaseActivity
who extends my MainActivity
:
abstract class BaseActivity: HasSupportFragmentInjector, AppCompatActivity() {
@Inject
lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Fragment>
override fun onCreate(savedInstanceState: Bundle?) {
AndroidInjection.inject(this)
super.onCreate(savedInstanceState)
}
override fun supportFragmentInjector(): AndroidInjector<Fragment> {
return dispatchingAndroidInjector
}
}
How i can solve this issue?