PHPからAndroidのapkをantでビルドする環境を作成中、ヒープ不足でVMが起動しない問題に遭遇しました。
-dex:
[dex] input: /path1/to/bin/classes
[dex] input: /path2/to/bin/classes.jar
[dex] input: /path/to/android-sdk-linux/tools/support/annotations.jar
[dex] input: /path2/to/libs/android-support-v4.jar
[dex] Pre-Dexing /path2/to/bin/classes.jar -> classes-df6cdfb7c6be3c83700a640e18a54033.jar
[dx] Error occurred during initialization of VM
[dx] Could not reserve enough space for object heap
[dx] Error: Could not create the Java Virtual Machine.
[dx] Error: A fatal exception has occurred. Program will exit.
解決策は android-sdk-linux/platform-tools/dx の
defaultMx=”-Xmx1024M”
を小さくすればOKです。
今回は
defaultMx=”-Xmx128M”
としました。
dxコマンドを直接実行する場合は、コマンドに
-JXmx128M
とオプションを付ければ大丈夫なようですが、antの場合はできないっぽいです。
あと、ANT_OPTSはantの中で実行されるjavaコマンドについては引き継がないようです。

HOMMA Teppei

