【发布时间】:2020-12-11 00:00:35
【问题描述】:
我有两个活动: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))
}
}
我不太确定问题出在哪里。我应该通过 Koin 注入 LoginActivity 吗?意图不应该与 Koin 一起使用吗?
【问题讨论】:
-
活动启动代码在这种情况下并不重要。附上你初始化 Koin 的地方以及你如何将你的依赖注入到你的活动中。即使是不注入实现的空模块也可以消除问题,并用空实现模拟每个依赖项。我猜?即使使用空模块,您也会遇到崩溃,因为您在应用程序中的一个地方初始化 Koin。
标签: android kotlin dependency-injection koin