Java LWJGL GLFW挂起本机glfwInit调用

Java LWJGL GLFW挂起本机glfwInit调用,java,java-native-interface,lwjgl,glfw,Java,Java Native Interface,Lwjgl,Glfw,我最初在上发布了这个问题,但是我也会在这里问这个问题,以尝试获得更多的推广,特别是因为我不确定我的问题是特定于游戏开发的,因为这是一个Java本机调用的问题 在过去的几个月里,我一直致力于在LWJGL中创建自己的游戏引擎供个人使用,在这里和那里使用片段,特别是从开发者ThinMatrix的合法代码中,在构建它的过程中尽可能多地学习。直到最近,当我从IntelliJ启动引擎进行测试时,才会出现奇怪的行为: 大约6-10次单击run(运行)后,所有后续运行都会突然花费大约60秒的时间来显示窗口

我最初在上发布了这个问题,但是我也会在这里问这个问题,以尝试获得更多的推广,特别是因为我不确定我的问题是特定于游戏开发的,因为这是一个Java本机调用的问题

在过去的几个月里,我一直致力于在LWJGL中创建自己的游戏引擎供个人使用,在这里和那里使用片段,特别是从开发者ThinMatrix的合法代码中,在构建它的过程中尽可能多地学习。直到最近,当我从IntelliJ启动引擎进行测试时,才会出现奇怪的行为:

  • 大约6-10次单击run(运行)后,所有后续运行都会突然花费大约60秒的时间来显示窗口

  • 每当我重新启动我的电脑,这个挂起重置,我有另一个6-10运行之前,它挂起每一次

  • 我将问题定位到
    glfwInit
    ,更具体地说是在调用本机方法时:

      @NativeType("int")
      public static boolean glfwInit() {
          long __functionAddress = Functions.Init;
          return invokeI(__functionAddress) != 0; // Right here
      }
    
  • 我还注意到,当我试图使用STBTrueType库在引擎中实现文本支持时,这个问题才开始出现。在那之前,一切都很好。我尝试删除TrueType代码,但没有修复它

以下是我尝试过的一些事情:

  • 清除我的临时文件夹以防出现错误或损坏的文件
  • 重新编译和重建整个LWJGL罐两次
  • 从glfw源中构建
    glfw.dll
    ,并用前者替换本机JAR中的
    glfw.dll
  • 重新安装Java并实际升级JDK版本(从13.0.2到14.0.2)
  • 即使我怀疑它不起作用,也要切换IDE
  • 更新我的NVIDIA驱动程序,并重新安装它们
我很困惑它可能是什么,如果您认为有必要,我非常乐意分享代码、线程转储或调试信息。使用最新的“错误”代码(引号中有错误,因为我不太确定代码是否有问题。)

非常感谢您的指导


附言:请告诉我,在StackOverflow中而不是在这里问这个问题是否更好。

所以我解决了这个问题,结果发现它甚至与编程、STBTrueType或库本身无关。问题正如所指出的那样,这种挂起行为是由于错误的驱动程序造成的,或者在我的情况下,我的键盘USB被插入了“错误的”USB端口。在我开始处理引擎中的文本的同时,我移动了我的计算机,因此我错误地将问题与TrueType库联系起来。如果您遇到同样的问题,请查看上述帖子,或者如果这不起作用,请查找可能会造成干扰的外围设备。

如果您的程序卡在本机代码中,我建议附加一个本机调试器并检查其阻塞位置。@Botje我本来打算这样做,但我想我现在就去做