Невозможно начать активность с помощью явного намерения при использовании Koin (Koincontext уже запущен)

У меня есть два действия: MainActivity и LoginActivity. MainActivity содержит фрагмент с параметром выхода из учетной записи, а затем открывает намерение для отображения LoginActivity.

Я использую Koin как DI. Я получаю эту ошибку:

java.lang.RuntimeException: Unable to start activity ComponentInfo{***/***.LoginActivity}: java.lang.IllegalStateException: A KoinContext is already started

Для следующего кода:

    private fun setListeners(){
    btnLogout.setOnClickListener {
        firebaseAuth.getInstance().signOut()
        activity?.finish()
        val intent = Intent(context, LoginActivity::class.java)
        startActivity((intent))
    }
}

Я не совсем понимаю, в чем проблема. Должен ли я вводить LoginActivity через Koin? Не следует ли использовать намерения с Koin?


person Naty Harary    schedule 21.08.2020    source источник
comment
Код запуска активности в данном случае не так важен. прикрепите место, где вы инициализируете Koin, и то, как вы вводите свои зависимости в свои действия. Избавьтесь от проблемы даже с пустыми модулями, которые не внедряют реализации, и имитируйте каждую зависимость с пустой реализацией. Моя догадка? даже с пустыми модулями вы получите сбой, так как вы инициализируете Koin в моем тогда единственном месте в своем приложении.   -  person Idanatz    schedule 31.08.2020


Ответы (1)


Попробуй это

private fun setListeners(){
    btnLogout.setOnClickListener {
        firebaseAuth.getInstance().signOut()
        activity?.finish()
        val intent = Intent(this, LoginActivity::class.java)
        startActivity((intent))
    }
}
person Branddd    schedule 21.08.2020
comment
К сожалению, не работает. Он не распознает фрагмент как контекст для этих целей. - person Naty Harary; 24.08.2020
comment
попробуйте добавить this@LoginActivity - person Branddd; 25.08.2020
comment
И чтобы ответить, нельзя ли использовать Котлин. Я использую намерения в своих проектах каждый раз, когда мне нужно начать новую деятельность. - person Branddd; 25.08.2020