虽然我的基于
Lwjgl3Application
的游戏在 Windows 和各种 Linux 发行版上运行良好,但在 macOS 上却出现黑屏。看起来对 glfwPollEvents
的调用根本没有返回,这会阻塞主循环(请参阅堆栈跟踪)。
我尝试提供一个最小示例,但使用相同版本的新 libGDX 项目不会出现此问题。
Stacktrace(应用程序不会崩溃,但这是它挂起的地方):
invokeV:-1, JNI (org.lwjgl.system)
glfwPollEvents:3438, GLFW (org.lwjgl.glfw)
loop:199, Lwjgl3Application (com.badlogic.gdx.backends.lwjgl3)
<init>:167, Lwjgl3Application (com.badlogic.gdx.backends.lwjgl3)
main:43, DesktopLauncher
版本:
编辑:
-XstartOnFirstThread
来启动它,因此它在主线程中运行。Toolkit.getDefaultToolkit().systemClipboard
不会在项目中被调用,也不会被调用 java.awt 或类似的任何其他内容好吧,我一一删除了应用程序的各个部分,然后我能够将其归结为
TexturePacker
,在开始游戏之前,我在 DesktopLauncher
中临时运行了它(仅用于开发目的)。跳过这一步即可解决问题。
我还没有对其进行足够深入的调试,以找到导致问题的
TexturePacker
中的确切位置,但我已经看到它使用了 java.awt
包,该包还提供了 ALUFTW 提到的有问题的 Toolkit.systemClipboard
.
(关于这个问题的接近票和反对票。我同意没有足够的信息来解决这个问题,但也许这个问题和我的答案可以帮助别人解决未来类似的问题,所以我决定不删除它.)