Я новичок в Dagger и получаю следующую ошибку:
FATAL EXCEPTION: main Процесс: com.biolabsalta.app, PID: 8028 java.lang.RuntimeException: Невозможно выполнитьначать действие ComponentInfo {com.lab.app/com.lab.app.ui.login.LoginActivity}: kotlin.UninitializedPropertyAccessException: компонент свойства lateinit не был инициализирован
Эта ошибка произошла, когда я передал свойпроект из Явы в Котлин.Поделиться моим кодомПожалуйста, помогите
ActivityComponent.kt
@PerActivity
@Component(dependencies = arrayOf(ApplicationComponent::class),
modules = arrayOf(ActivityModule::class))
interface ActivityComponent {
@ActivityContext
fun context(): Context
fun inject(activity: MainActivity)
fun inject(activity: LoginActivity)
...
}
ActivityModule.kt
@Module
class ActivityModule constructor(private val activity: AppCompatActivity) {
@Provides
@ActivityContext
fun provideContext(): Context = activity
@Provides
fun provideActivity(): AppCompatActivity = activity
@Provides
@PerActivity
fun provideMainPresenter(
presenter: MainPresenter<MainMvpView>): MainMvpPresenter<MainMvpView> = presenter
@Provides
@PerActivity
fun providerLoginPresenter(
presenter: LoginPresenter<LoginMvpView>): LoginMvpPresenter<LoginMvpView> = presenter
...
}
BaseActivity.kt
abstract class BaseActivity : AppCompatActivity(), MvpView {
lateinit var activityComponent: ActivityComponent
override val isNetworkConnected: Boolean
get() = NetworkUtils.isNetworkConnected(applicationContext)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activityComponent = DaggerActivityComponent.builder()
.activityModule(ActivityModule(this))
.applicationComponent(LabApp.component)
.build()
}
LoginActivity.kt
class LoginActivity : BaseActivity(), LoginMvpView {
@Inject
lateinit var presenter: LoginMvpPresenter<LoginMvpView>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
activityComponent.inject(this)
presenter.onAttach(this)
btn_login.setOnClickListener{
presenter.onServerLoginClick(account_email!!.text.toString(),
account_password.text.toString())
hideKeyboard()
}
LabApp.kt
class LabApp : Application() {
companion object {
lateinit var component: ApplicationComponent
}
override fun onCreate() {
super.onCreate()
component = DaggerApplicationComponent.builder()
.applicationModule(ApplicationModule(this))
.build()
component.inject(this)
}
}
Может кто угодноПомоги мне?Заранее спасибо.
ОБНОВЛЕНИЕ Я просто забыл объявить в манифесте.
android:name=".LabApp"