Ubuntu + libGDX + Android あたりのバグ
Ubuntu上でのlibGDXのAndroid実行にかなり手間取ったので、解決方法を記しておきます。
どなたかの参考になれば幸いです。
私の環境は
Ubuntu 14.04 Android API 20 libGDX 1.6.5
です。
以下のリンクにコマンドラインからの実行方法が載っています。環境が変わっても、gradlewを実行すれば、ほぼ同じコマンドでアプリケーションを動かせるのは、非常に便利です。Windowsの場合、gradlewがgradlew.batに変わるぐらいのものです。
Gradle on the Commandline · libgdx/libgdx Wiki · GitHub
まず、以下のコマンドについてです。
$ ./gradlew android:run
このコマンドは普通単体では使いません。なぜなら、このコマンドは実機に既にインストールされているアプリを起動しているだけだからです。つまり、変更は反映されません。
また、私の環境では実機をつないでいないと以下のエラーが出力されます。
finished with non-zero exit value 255
つかう場合は実機につないでから、
$ ./gradlew android:installDebug android:run
とします。
以下のコマンドを実行すると実機にインストールされます。
$ ./gradlew android:installDebug
しかし、上記のコマンドを私の環境で実行したところ、下記のようなエラーが出力されました。
AAPT err(1182738865): /home/luiz/Android/Sdk/build-tools/23.0.0_rc2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory AAPT err(553971014): /home/luiz/Android/Sdk/build-tools/23.0.0_rc2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory AAPT err(1941852674): /home/luiz/Android/Sdk/build-tools/23.0.0_rc2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory AAPT err(517600684): /home/luiz/Android/Sdk/build-tools/23.0.0_rc2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory AAPT err(921562108): /home/luiz/Android/Sdk/build-tools/23.0.0_rc2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory AAPT err(786784465): /home/luiz/Android/Sdk/build-tools/23.0.0_rc2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory AAPT err(805299572): /home/luiz/Android/Sdk/build-tools/23.0.0_rc2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory AAPT err(312497444): /home/luiz/Android/Sdk/build-tools/23.0.0_rc2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory AAPT err(2125144304): /home/luiz/Android/Sdk/build-tools/23.0.0_rc2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory AAPT err(1681651773): /home/luiz/Android/Sdk/build-tools/23.0.0_rc2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory AAPT err(688814298): /home/luiz/Android/Sdk/build-tools/23.0.0_rc2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory AAPT err(1092895317): /home/luiz/Android/Sdk/build-tools/23.0.0_rc2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory AAPT err(1289256265): /home/luiz/Android/Sdk/build-tools/23.0.0_rc2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory AAPT err(2085783707): /home/luiz/Android/Sdk/build-tools/23.0.0_rc2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory AAPT err(2119585940): /home/luiz/Android/Sdk/build-tools/23.0.0_rc2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory Exception in thread "png-cruncher_4" java.lang.RuntimeException: Timed out while waiting for slave aapt process, try setting environment variable SLAVE_AAPT_TIMEOUT to a value bigger than 5 seconds at com.android.builder.png.AaptProcess.waitForReady(A aptProcess.java:104) at com.android.builder.png.QueuedCruncher$1.creation( QueuedCruncher.java:107) at com.android.builder.tasks.WorkQueue.run(WorkQueue. java:204) at java.lang.Thread.run(Thread.java:745) Exception in thread "png-cruncher_3" java.lang.RuntimeException: Timed out while waiting for slave aapt process, try setting environment variable SLAVE_AAPT_TIMEOUT to a value bigger than 5 seconds at com.android.builder.png.AaptProcess.waitForReady(A aptProcess.java:104) at com.android.builder.png.QueuedCruncher$1.creation( QueuedCruncher.java:107) at com.android.builder.tasks.WorkQueue.run(WorkQueue. java:204) at java.lang.Thread.run(Thread.java:745) Exception in thread "png-cruncher_10" java.lang.RuntimeException: Timed out while waiting for slave aapt process, try setting environment variable SLAVE_AAPT_TIMEOUT to a value bigger than 5 seconds at com.android.builder.png.AaptProcess.waitForReady(A aptProcess.java:104) at com.android.builder.png.QueuedCruncher$1.creation( QueuedCruncher.java:107) at com.android.builder.tasks.WorkQueue.run(WorkQueue. java:204) at java.lang.Thread.run(Thread.java:745) Exception in thread "png-cruncher_6" java.lang.RuntimeException: Timed out while waiting for slave aapt process, try setting environment variable SLAVE_AAPT_TIMEOUT to a value bigger than 5 seconds at com.android.builder.png.AaptProcess.waitForReady(A aptProcess.java:104) at com.android.builder.png.QueuedCruncher$1.creation( QueuedCruncher.java:107) at com.android.builder.tasks.WorkQueue.run(WorkQueue. java:204) at java.lang.Thread.run(Thread.java:745) Exception in thread "png-cruncher_9" java.lang.RuntimeException: Timed out while waiting for slave aapt process, try setting environment variable SLAVE_AAPT_TIMEOUT to a value bigger than 5 seconds at com.android.builder.png.AaptProcess.waitForReady(A aptProcess.java:104) at com.android.builder.png.QueuedCruncher$1.creation( QueuedCruncher.java:107) at com.android.builder.tasks.WorkQueue.run(WorkQueue. java:204) at java.lang.Thread.run(Thread.java:745) Exception in thread "png-cruncher_14" java.lang.RuntimeException: Timed out while waiting for slave aapt process, try setting environment variable SLAVE_AAPT_TIMEOUT to a value bigger than 5 seconds at com.android.builder.png.AaptProcess.waitForReady(A aptProcess.java:104) at com.android.builder.png.QueuedCruncher$1.creation( QueuedCruncher.java:107) at com.android.builder.tasks.WorkQueue.run(WorkQueue. java:204) at java.lang.Thread.run(Thread.java:745) Exception in thread "png-cruncher_5" java.lang.RuntimeException: Timed out while waiting for slave aapt process, try setting environment variable SLAVE_AAPT_TIMEOUT to a value bigger than 5 seconds at com.android.builder.png.AaptProcess.waitForReady(A aptProcess.java:104) at com.android.builder.png.QueuedCruncher$1.creation( QueuedCruncher.java:107) at com.android.builder.tasks.WorkQueue.run(WorkQueue. java:204) at java.lang.Thread.run(Thread.java:745) Exception in thread "png-cruncher_17" java.lang.RuntimeException: Timed out while waiting for slave aapt process, try setting environment variable SLAVE_AAPT_TIMEOUT to a value bigger than 5 seconds at com.android.builder.png.AaptProcess.waitForReady(A aptProcess.java:104) at com.android.builder.png.QueuedCruncher$1.creation( QueuedCruncher.java:107) at com.android.builder.tasks.WorkQueue.run(WorkQueue. java:204) at java.lang.Thread.run(Thread.java:745) Exception in thread "png-cruncher_13" java.lang.RuntimeException: Timed out while waiting for slave aapt process, try setting environment variable SLAVE_AAPT_TIMEOUT to a value bigger than 5 seconds at com.android.builder.png.AaptProcess.waitForReady(A aptProcess.java:104) at com.android.builder.png.QueuedCruncher$1.creation( QueuedCruncher.java:107) at com.android.builder.tasks.WorkQueue.run(WorkQueue. java:204) at java.lang.Thread.run(Thread.java:745)
これはLinuxのadb関連のバグのようです。私は以下のパッケージをインストールすることで、解決しました。
$ sudo apt-get install libgl1-mesa-dri:i386 $ sudo apt-get install ia32-libs-multiarch:i386 $ sudo apt-get install ia32-libs-multiarch
私はIntelliJ IDEAで開発していますが、
please select android sdk
というエラーメッセージが全く消えないということもありました。SDKのディレクトリも絶対指定しているはずなのに、どういうことなのかさっぱりわかりませんでした。
これについては、android sdk managerでもう一度 Android SDK Build-toolsとAPIをインストールしなおしたあとに
gdx-setup.jar
でもう一度プロジェクトを作ることで、解決しました。
adb not responding
というエラーもあったような気がしますが、それについては上記のパッケージをインストールすれば解決する模様です。
似たような環境でわからないことや不明なバグなどあれば、お助けできるかもしれないので、是非コメントをお寄せください。