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

问题描述 投票:0回答:1

我已经将我的项目形式从Java转换为kotlin。现在,我找不到任何方法来运行我的DesktopApplication。它说:

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

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

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

kotlinVersion ='1.3.61'

gdxVersion ='1.9.10'

Desktop build.gradle

Parent build.gradle

DesktopLauncher.kt

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

gradle desktop:run
java kotlin gradle libgdx desktop-application
1个回答
0
投票

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

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

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

最后删除Kt,一切正常。

EDIT:我还建议将fun main()移动到DesktopLauncher对象中,并用@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)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.