LWJGLによるandroid-testリポジトリの手順に従ってLWJGLのAndroidポートを構築しました。私は今携帯電話を使って開発中ですので、私はタブレットを試してみることにしました。それは2つの問題を提示しました。まず、インストールはINSTALL_FAILED_NO_MATCHING_ABIS
で失敗します。別のスタックオーバーフローの答えからブロックを強制した後、私はそれをインストールします。これは、インストールされますが、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ライブラリを見つけることができません。私のタブレット(私の電話ではない)でしかクラッシュしないということと、プロセッサ(Intel VSアーム)が言及する価値があることがわかります。
クラッシュは、この行で発生します
GLES.createCapabilities();
、それはARMデバイスに起こります。私は別のデバイスでも試してみましたが(主にエミュレータ)、32ビットか64ビットかにかかわらず、ARMデバイスでのみこれを再現できます。
基本的なレンダラーとGLSurfaceViewを設定し、onSurfaceCreated
のレンダラーでGLES.createCapabilities();
を呼び出し、ARM CPUを搭載したデバイスで実行します。
でもandroid-test
レポのクローンを作成し、ARMデバイス上でそれを実行するには、私のためにそれを再現するのに十分だった
どのように私は、ARMデバイスに期待されるようにLWJGLを実行するために得ることができますか?