LWJGL의 android-test repo의 지침에 따라 LWJGL의 Android 포트를 빌드했습니다. 나는 잠시 동안 그것을 개발하기 위해 내 전화를 사용하고 있었고, 그래서 나는 타블렛을 사용해보기로 결심했다. 그것은 두 가지 문제점을 제시했다. 먼저 INSTALL_FAILED_NO_MATCHING_ABIS
으로 설치가 실패합니다. 다른 스택 오버플로 (Stack Overflow) 응답의 블록을 강제로 처리 한 후 설치합니다. 그것은 설치하지만 UnsatisfiedLinkError를 함께 충돌 :ARM CPU가있는 장치에서 LWJGL이 충돌 함
Process: com.example.mygame, PID: 31920
java.lang.UnsatisfiedLinkError: Failed to locate library: liblwjgl.so
at org.lwjgl.system.Library.loadSystem(Library.java:145)
at org.lwjgl.system.Library.loadSystem(Library.java:65)
at org.lwjgl.system.Library.<clinit>(Library.java:48)
at org.lwjgl.system.Library.loadSystem(Library.java:87)
at org.lwjgl.opengles.GLES.<clinit>(GLES.java:60)
at com.example.mygame.engine.SRenderer.onSurfaceCreated(SRenderer.java:33)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1521)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1253)
즉 그것은 LWJGL 라이브러리를 찾을 수 없습니다. 기괴한 부분은 내 태블릿 (내 전화가 아님)에서만 충돌한다는 점과 내가 언급 할 가치가있는 유일한 차이점은 프로세서 (인텔 VS 암)라는 점입니다.
GLES.createCapabilities();
그것은 는 ARM 장치에 발생합니다
충돌이 줄에 발생합니다. 나는 다른 장치 (뿐만 아니라 대부분의 에뮬레이터)에서 시도하고 32 비트인지 64 비트인지에 관계없이 ARM 장치에서이 코드를 재현 할 수 있습니다. 기본 렌더러와 GLSurfaceView를 설정하고 onSurfaceCreated
에 렌더러에 GLES.createCapabilities();
를 호출하고 ARM의 CPU와 장치에서 실행 : 문제를 재현
은 간단합니다.
심지어 android-test
의 repo를 복제하고 ARM 디바이스에 실행 나를 위해 그것을 재현에 충분했다
어떻게 ARM 디바이스에서 예상처럼 LWJGL을 실행할 수 있습니까?