2017-12-20 17 views
1

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を実行するために得ることができますか?

答えて

0

例外はファイルが最初に含まれていなかったためです。 Androidのポートはではありません。まだが完成していないので、サイトまたはGithubからのmaven centralまたはgeneralダウンロードから利用できるプリコンパイル済みのライブラリはありません。

arm64-v8aarmeabi-v7aを別々に(2つの異なるaarファイル)コンパイルし、各ライブラリをプロジェクトで別々のモジュールとして追加する必要がありました。 x86とx86_64のライブラリは、これらのライブラリとは別にコンパイルする必要があります。

基本的に、各コアアーキテクチャを個別にコンパイルし、プロジェクトに追加します。

関連する問題