最近LibGDXゲームを実行すると、ブートには20秒かかりますが、これはいくつかのリソースをロードするだけなので奇妙です。私はアプリが立ち往生し、それは私がこの行を呼び出すときに、それが立ち往生だ判明どこ特定するために私のメインメソッドにブレークポイントを置く:Lwjgl3ApplicationコンストラクタでLibGDXアプリケーションinitializGlfw()に掛ける
new Lwjgl3Application(new GdxGame(), config);
を、それがこのメソッドの呼び出しに掛かっていますこの中
static void initializeGlfw() {
if (errorCallback == null) {
Lwjgl3NativesLoader.load();
errorCallback = GLFWErrorCallback.createPrint(System.err);
GLFW.glfwSetErrorCallback(errorCallback);
if (!GLFW.glfwInit()) {
throw new GdxRuntimeException("Unable to initialize GLFW");
}
}
}
::次のようになります
initializeGlfw();
方法はcreatePrint
とGLFW.glfwInit()
に固執します。印刷方法は次のようになります。
public static GLFWErrorCallback createPrint(PrintStream stream) {
return new GLFWErrorCallback() {
private Map<Integer, String> ERROR_CODES = APIUtil.apiClassTokens((field, value) -> 0x10000 < value && value < 0x20000, null, GLFW.class);
@Override
public void invoke(int error, long description) {
String msg = getDescription(description);
stream.printf("[LWJGL] %s error\n", ERROR_CODES.get(error));
stream.println("\tDescription : " + msg);
stream.println("\tStacktrace :");
StackTraceElement[] stack = Thread.currentThread().getStackTrace();
for (int i = 4; i < stack.length; i++) {
stream.print("\t\t");
stream.println(stack[i].toString());
}
}
};
}
これらの方法はすべてLwjglライブラリからのものです。誰も私のアプリがこれらのメソッド呼び出しに執着しているかもしれない理由を知っていますか?
スチームクラッシュが発生し、ゲームをロードしようとすると、実際にはゆっくりと進みます。コンピュータを再起動するだけで問題は解決します。 –