将 libgdx 项目从 java 转换为 kotlin 后找不到或加载主类



我已经将我的项目从java转换为kotlin。现在我找不到任何方法来运行我的桌面应用程序。 它说:

Error: Could not find or load main class ru.myitschool.dcrawler.desktop.DesktopLauncherKt

这是2017年的非常古老的项目,因此可能缺少一些重要的修复。我使用了许多指南和问题来使其即使在这种状态下也能正常工作。 所以我不能清楚地描述重现的步骤。 但我要补充一点,当只有 core 转换为 kotlin 时,桌面应用程序可以工作,但无法从 core 中找到任何类。 在我转换桌面应用程序后,似乎出现了类路径的一些问题。 我当然更改了配置,并将其设置为来自 kotlin 的配置。 我做的最后一件事是将 main 移出了对象范围。但这并没有改变任何事情。

LibGDX 的版本和/或相关依赖项:

kotlinVersion = '1.3.61'

gdxVersion = '1.9.10'

Desktop build.gradle

Parent build.gradle

桌面启动器.kt

请注意,如果通过以下方式启动应用程序,则应用程序将正确运行:

gradle desktop:run

桌面应用程序的主要类是ru.myitschool.dcrawler.desktop.DesktopLauncher

但是,在 desktop/build.gradle 中,您有:

project.ext.mainClassName = "ru.myitschool.dcrawler.desktop.DesktopLauncherKt"

最后删除Kt,一切正常。

编辑:我还建议在桌面启动器对象中移动fun main()并用@JvmStatic注释它:

package ru.myitschool.dcrawler.desktop
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration
import ru.myitschool.dcrawler.MyGdxGame
object DesktopLauncher {
@JvmStatic
fun main(arg: Array<String>) {
val config = Lwjgl3ApplicationConfiguration()
config.setTitle("Dungeon Crawler")
val monitors = Lwjgl3ApplicationConfiguration.getMonitors() //config.setFullscreenMode(Lwjgl3ApplicationConfiguration.getDisplayMode(monitors[1]));
config.setWindowedMode(1280, 720)
Lwjgl3Application(MyGdxGame(), config)
}
}

最新更新