【问题标题】:LibGDX project isn't launching, it says Could not initialize class org.lwjgl.SysLibGDX 项目没有启动,它说无法初始化类 org.lwjgl.Sys
【发布时间】:2022-01-22 14:41:40
【问题描述】:

每当我尝试启动 LibGDX 项目时,都会出现如下所示的问题:

Starting Gradle Daemon...
Gradle Daemon started in 2 s 577 ms
> Task :core:compileJava UP-TO-DATE
> Task :core:processResources NO-SOURCE
> Task :core:classes UP-TO-DATE
> Task :core:jar UP-TO-DATE
> Task :desktop:compileJava UP-TO-DATE
> Task :desktop:processResources UP-TO-DATE
> Task :desktop:classes UP-TO-DATE

> Task :desktop:DesktopLauncher.main()
[LwjglApplication] Couldn't initialize audio, disabling audio
java.lang.UnsatisfiedLinkError: /tmp/libgdxalice/dd5c1a65/liblwjgl64.so: /usr/lib/jvm/jdk-17/lib/libjawt.so: version `SUNWprivate_1.1' not found (required by /tmp/libgdxalice/dd5c1a65/liblwjgl64.so)
    at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
    at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2389)
    at java.base/java.lang.Runtime.load0(Runtime.java:755)
    at java.base/java.lang.System.load(System.java:1953)
    at org.lwjgl.Sys$1.run(Sys.java:70)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
    at org.lwjgl.Sys.loadLibrary(Sys.java:87)
    at org.lwjgl.Sys.<clinit>(Sys.java:117)
    at org.lwjgl.openal.AL.<clinit>(AL.java:59)
    at com.badlogic.gdx.backends.lwjgl.audio.OpenALLwjglAudio.<init>(OpenALLwjglAudio.java:72)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.createAudio(LwjglApplication.java:282)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.<init>(LwjglApplication.java:90)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.<init>(LwjglApplication.java:71)
    at com.kuuject.atherwund.desktop.DesktopLauncher.main(DesktopLauncher.java:10)

BUILD SUCCESSFUL in 13s
5 actionable tasks: 1 executed, 4 up-to-date
Exception in thread "LWJGL Application" java.lang.NoClassDefFoundError: Could not initialize class org.lwjgl.Sys
    at org.lwjgl.opengl.Display.<clinit>(Display.java:135)
    at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setVSync(LwjglGraphics.java:643)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:125)
9:18:30 AM: Execution finished ':desktop:DesktopLauncher.main()'.

我这辈子都想不出解决办法。起初,我尝试重新安装我的 JDK,但这根本不是问题。在我切换到 PopOS 之前,这不是问题。有什么帮助吗?

【问题讨论】:

  • A NoClassDefFoundError 带有消息“无法初始化类.....”表示此时 JVM 已尝试对命名类执行静态初始化但失败。当 JVM 第一次尝试初始化类时,您可能会收到不同的消息。您能在错误输出的开头看到不同的消息吗?如果是这样,请编辑问题以包含此内容。
  • 我现在包含它
  • 感谢您为您的问题添加额外的细节。我不得不承认我不是 libgdx 或 LWJGL 方面的专家:我认为我以前从未使用过它们中的任何一个,当然也没有见过这个错误。但是,您现在收到一条错误消息,其中提供了有关该问题的更多信息,因此希望对这些事情有更多了解的人能够提供帮助。

标签: java linux intellij-idea libgdx


【解决方案1】:

这是 LWJGL 而非 *nix 的 LibGDX 的问题。按照此处的说明进行操作

libgdx can't start desktop project on ubuntu

【讨论】:

    【解决方案2】:

    我发现了问题。你需要将build.gradle中的LWJGL api,依赖项更改为LWJGL3。

    api "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
    

    api "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
    

    在 DesktopLauncher.java 中,更改这些

    import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
    import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
    

    LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
    new LwjglApplication(new MyGdxGame(), config);
    

    import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
    import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
    

    Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
    new Lwjgl3Application(new MyGdxGame(), config);
    

    【讨论】:

      猜你喜欢
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 2014-11-17
      • 2015-10-20
      • 1970-01-01
      • 2022-11-24
      • 2020-08-29
      • 1970-01-01
      相关资源
      最近更新 更多