У меня есть приложение, подобное этому
class App : Application() , HasAndroidInjector {
lateinit var application: Application
@Inject
lateinit var androidInjector : DispatchingAndroidInjector<Any>
override fun androidInjector(): AndroidInjector<Any> = androidInjector
override fun onCreate() {
super.onCreate()
this.application = this
}
}
Тогда у меня есть AppComponent
@Singleton
@Component(
modules = [
AndroidSupportInjectionModule::class,
LoginModule::class
]
)
interface AppComponent : AndroidInjector<App> {
@Component.Factory
interface Factory {
fun create(@BindsInstance application: App): AppComponent
}
}
LoginModule это
@Module
abstract class LoginModule {
@ContributesAndroidInjector(modules = [LoginDependencies::class])
abstract fun bindLoginFragment(): LoginFragment
}
И в onViewCreated
из Fragment
Я использую
AndroidSupportInjection.inject(this)
Я также пытался добавить его на onAttach()
, но он не работает. Он начал ломать sh, как только я добавил
@Inject
lateinit var loginPresenter: LoginContract.Presenter
Если я удаляю его, он говорит так же, как вопрос, если я оставляю докладчика, он говорит, что preseter не инициализируется.
Что-то мне не хватает?
Редактировать
Откуда я получаю эту ошибку
Caused by: kotlin.UninitializedPropertyAccessException: lateinit property androidInjector has not been initialized
override fun androidInjector(): AndroidInjector<Any> = androidInjector
Тогда я получаю это также
на com.testing.login.login.presentation.LoginFragment.onRequestInjection (LoginFragment.kt: 31)
AndroidSupportInjection.inject(this)
Это onRequestInjection
в AbstractFragment
в onViewCreated
, также я пытался поставить его на onAttach()
, но ничего не изменилось.
И мой build.gradle
содержит:
это в: app
api(LibrariesDependencies.DAGGER)
api(LibrariesDependencies.DAGGER_ANDROID)
api(LibrariesDependencies.DAGGER_ANDROID_SUPPORT)
kapt LibrariesDependencies.DAGGER_ANDROID_KAPT
kapt LibrariesDependencies.DAGGER_KAPT
kapt LibrariesDependencies.DAGGER_ANNOTATION_PROCESSOR
и в: логин
api(LibrariesDependencies.DAGGER)
api(LibrariesDependencies.DAGGER_ANDROID)
api(LibrariesDependencies.DAGGER_ANDROID_SUPPORT)
kapt LibrariesDependencies.DAGGER_ANDROID_KAPT
kapt LibrariesDependencies.DAGGER_KAPT
kapt LibrariesDependencies.DAGGER_ANNOTATION_PROCESSOR