java - Libgdx 在 Fedora 31 上不起作用 - 无法初始化类 org.lwjgl.Sys
问题描述
我从官方网站下载了 libgdx(所以我想它是最新的),然后在 Intellij 中通过 gradle 打开它。我没有更改任何代码并编译了默认代码。这是我的构建配置:
应用程序不起作用,我收到此消息:
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:592)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:126)
我将 Fedora 31 与 GNOME 3.34.5 一起使用。你知道如何解决它吗?
编辑:我尝试了另一种方法:从 libgdx 的 github 克隆代码并按照他们的 wiki 中的说明进行操作:
必须关闭本机二进制文件才能运行。这些二进制文件是在快照构建服务器上构建的,因此您需要运行一个任务来关闭它们。即使您计划稍后自己构建原生程序,也建议您将其关闭,以便在进行下一步之前测试您的开发环境是否已设置。从 LibGDX 根目录通过 Gradle:
./gradlew fetchNatives
After running this I received:
FAILURE: Build failed with an exception.
What went wrong:
Could not initialize class org.codehaus.groovy.runtime.InvokerHelper
解决方案
我没有名声,所以我不能编辑或评论,但经过一些小小的 tweeks,我能够让 alekseymishanin 的解决方案发挥作用。
背景信息:Ubuntu 20.04,当我从 JDK 8 切换到 16 时,示例 libGDX 无法构建。
使固定
- 将 gradle 包装器升级到 7.0。您可能已经这样做了,因为没有此修复程序,您会收到编译时错误:
./gradlew wrapper --gradle-version 7.0
api "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
通过替换为 api "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"切换到 build.gradle 中的 lwgl3- 在
DesktopLauncher.java
中,相应地更新导入,并将所有实例替换Lwjgl
为Lwjgl3
。例如,new LwjglApplicationConfiguration()
变成new Lwjgl3ApplicationConfiguration()
推荐阅读
- discord.py - 自我机器人 discord.py 的自定义状态
- amazon-web-services - AWS Kubernetes 中缺少 NVMe SSD
- javascript - VsCode 未在 Ubuntu 上运行
- django - 在使用 Django 租户时,让用户浏览器重新缓存静态文件的最佳方法是什么?
- java - 方法 areEqualByThreeDecimalPlace(double, double) 对于 DecimalComparator 类型未定义
- matlab - 为什么我的不同迭代给出相同的结果?
- php - 需要在 select col json 中以 obj 的形式返回,但 JSON_UNQUOTE 不起作用
- go - golang中结构定义中的意思是chan词是什么
- google-chrome - 获取频繁的 chrome 驱动程序错误:驱动程序配置/启动失败:chrome 服务器在空手道独立中从 http://localhost:(port) 返回了空列表
- gnuradio - Gnuradio - 无法解码 cc_decoder