2017-12-20 21 views
1

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을 실행할 수 있습니까?

답변

0

파일이 처음부터 포함되지 않았기 때문에 예외가 발생했습니다. 안드로이드 포트는 이 아니기 때문에이 아직 완료되지 않았으므로 사이트 나 Github에서 Maven 중심 또는 일반 다운로드를 통해 미리 컴파일 된 라이브러리를 사용할 수 없습니다.

arm64-v8aarmeabi-v7a을 별도로 (2 개의 다른 aar 파일) 컴파일하고 각 프로젝트를 별도의 모듈로 프로젝트에 추가해야하는 번거 로움이 있습니다. x86 및 x86_64 라이브러리는이 두 라이브러리와 별도로 컴파일해야합니다.

기본적으로 각 핵심 아키텍처를 개별적으로 컴파일하여 프로젝트에 추가하십시오.