我想在我的应用程序中同时使用 Conductor 和 Kodein。 问题是应用程序上下文和活动在控制器设置上都为空,我无法访问 Kodein 实例。
class SetupNavigationController: Controller(), KodeinAware {
override val kodein: Kodein by closestKodein(applicationContext!!)
// val kodein = (activity as MainActivity).kodein
val someInstance: SomeClass by kodein.instance()
}
Kodein 默认是懒惰的,特别是因为 applicationContext 在类实例化时为 null,稍后由系统设置。
您需要使用惰性语法,以便仅在需要时访问applicationContext
:
class SetupNavigationController: Controller(), KodeinAware {
override val kodein: Kodein by kodein { applicationContext!! }
val someInstance: SomeClass by kodein.instance()
}