gpt4 book ai didi

kotlin - 当我在 KorGE 中切换到其他场景时出现异常

转载 作者:行者123 更新时间:2023-12-02 13:29:42 25 4
gpt4 key购买 nike

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间接依赖注入(inject)器。

而且那个喷油器需要手动映射。如果您正在使用模块,您可以在 Module.init 上配置这些映射。方法。

检查此示例:https://github.com/korlibs/korge-samples/blob/1771b7ca7f4440e1a368ff4b441e97bf62e08b8d/sample-scenes/src/commonMain/kotlin/main.kt#L15-L23

在你的情况下,一旦你得到 Injector例如,您可以像这样映射场景:

mapPrototype { ChooseCampaign(get()) }

你必须放尽可能多的 get()作为参数您的 ChooseCampaign构造函数有。

在不使用模块的情况下,放置映射的位置不同,需要获取 Injector实例。

在您的 suspend fun main() = Korge { block ,你有 Stage单例注入(inject)。这是引用 Views 的 Root View 单例。

所以你可以像这样访问注入(inject)器: this.views.injector
然后,您可以随时映射您的场景,但我建议您在应用程序开始时进行映射。

关于kotlin - 当我在 KorGE 中切换到其他场景时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62157259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com