You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下VSCode运行libGDX项目抛出-XstartOnFirstThread错误

解决M1 Mac上libGDX的GLFW线程初始化错误

你遇到的错误是M1 Mac特有的线程模型导致的,GLFW要求在进程的第一个线程运行,而M1的JVM默认线程行为和Intel不同,以下是针对性解决方法:

方法一:正确配置Gradle的Run任务

打开desktop模块的build.gradle文件,找到run任务块,添加针对Mac系统的JVM参数配置:

run {
    // 仅在Mac系统添加参数
    if (System.getProperty('os.name').toLowerCase().contains('mac')) {
        jvmArgs += '-XstartOnFirstThread'
    }
}

配置完成后,在IDE中同步Gradle项目(点击Gradle面板的刷新按钮),再重新运行项目。

方法二:手动配置IDE运行参数

如果Gradle配置未生效,直接在IDE的运行配置中添加参数:

  1. 打开Run/Debug Configurations(右上角运行按钮旁的下拉菜单→Edit Configurations)
  2. 找到DesktopLauncher的运行配置
  3. 在VM options输入框中添加:-XstartOnFirstThread
  4. 保存配置后重新运行

方法三:临时禁用GLFW线程检查(不推荐)

紧急情况下可以跳过GLFW的线程检查,但可能存在线程安全风险:
在DesktopLauncher的main方法开头添加以下代码:

import org.lwjgl.glfw.GLFW;

public class DesktopLauncher {
    public static void main (String[] arg) {
        // 禁用线程检查
        GLFW.glfwInitHint(GLFW.GLFW_CHECK_THREAD0, GLFW.GLFW_FALSE);
        
        Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
        config.setTitle("My GDX Game");
        new Lwjgl3Application(new MyGdxGame(), config);
    }
}

方法四:检查环境兼容性

  • 确保使用适配M1的ARM64架构Java版本(如Azul Zulu OpenJDK 11/17)
  • 确保libGDX版本在1.10.0及以上,早期版本对M1支持不完善

内容的提问来源于stack exchange,提问作者host

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 06:21:28