当我在 KorGE 中切换到其他场景时出现异常
Exception when I change to other scene in KorGE
com.soywiz.korinject.AsyncInjector$NotMappedException: Class 'class ChooseCampaign (Kotlin reflection is not available)' doesn't have constructors RequestContext(initialClazz=class ChooseCampaign (Kotlin reflection is not available))
编译当前代码时抛出上述异常。而且我不知道如何修复它以及它意味着什么。
我的代码:
textButton {
position(0, 128)
text = "Play"
onClick {
println("Play")
launchImmediately {
sceneContainer.changeTo<ChooseCampaign>()
}
}
}
如何修复?
在 KorGE 中使用场景时,您正在间接使用 korinject
依赖注入器。
而且那个喷油器需要手动映射。如果您使用的是模块,则可以在 Module.init
方法中配置这些映射。
在你的例子中,一旦你获得了 Injector
实例,你就可以像这样映射一个场景:
mapPrototype { ChooseCampaign(get()) }
您必须输入与 ChooseCampaign
构造函数具有的参数一样多的 get()
。
如果你不使用模块,放置映射的地方是不同的,你需要得到Injector
实例。
在您的 suspend fun main() = Korge {
块中,您注入了 Stage
单例。这是引用 Views
单例的根视图。
所以你可以像这样访问注入器:this.views.injector
然后您可以随时映射您的场景,但我建议您在应用程序开始时就这样做。
com.soywiz.korinject.AsyncInjector$NotMappedException: Class 'class ChooseCampaign (Kotlin reflection is not available)' doesn't have constructors RequestContext(initialClazz=class ChooseCampaign (Kotlin reflection is not available))
编译当前代码时抛出上述异常。而且我不知道如何修复它以及它意味着什么。
我的代码:
textButton {
position(0, 128)
text = "Play"
onClick {
println("Play")
launchImmediately {
sceneContainer.changeTo<ChooseCampaign>()
}
}
}
如何修复?
在 KorGE 中使用场景时,您正在间接使用 korinject
依赖注入器。
而且那个喷油器需要手动映射。如果您使用的是模块,则可以在 Module.init
方法中配置这些映射。
在你的例子中,一旦你获得了 Injector
实例,你就可以像这样映射一个场景:
mapPrototype { ChooseCampaign(get()) }
您必须输入与 ChooseCampaign
构造函数具有的参数一样多的 get()
。
如果你不使用模块,放置映射的地方是不同的,你需要得到Injector
实例。
在您的 suspend fun main() = Korge {
块中,您注入了 Stage
单例。这是引用 Views
单例的根视图。
所以你可以像这样访问注入器:this.views.injector
然后您可以随时映射您的场景,但我建议您在应用程序开始时就这样做。