Correcting a Bug in the Latest Google NDK r8e
NDK r8eは、64ビット環境に対応した初めてのバージョンで、64ビット環境でビルド時間の短縮が期待されるものです。それに従って各プラットフォームで32ビット版と64ビット版の2種類が提供されています。割と大きな変更だったために、Titaniumに限らず、いろいろなところでバグが報告されています。
Ti SDK をビルドせず、単にTi アプリをビルドするだけであれば、NDKのバージョンや修正はほぼ関係ないようなのです。しかし、Android用のTi モジュールを作成する場合は、更に問題があるようです。
Ti SDK 3.1.0 GAより以前 (3.0.2.GA,3.0.0.GA,2.1.4.GA ... ) でモジュールをビルドする場合、上記の修正をしてもしなくても、NDK r8eの32/64ビット版のいずれでも以下のような結果になります。
[exec] /usr/include/machine/_types.h:34:24: fatal error: arm/_types.h: No such file or directory [exec] compilation terminated. [exec] make: *** [/var/folders/r6/fpdnpcys5w9gfvm95dynn6v00000gn/T//k-ishida/tts-generated/obj/local/armeabi/objs/jp.isisredirect.tts/jp.isisredirect.tts.TtsModule.o] Error 1 BUILD FAILED /Library/Application Support/Titanium/mobilesdk/osx/3.0.0.GA/module/android/build.xml:371: The following error occurred while executing this line: /Library/Application Support/Titanium/mobilesdk/osx/3.0.0.GA/module/android/build.xml:326: exec returned: 2
また、Ti SDK 3.1.0.GAでビルドする場合には、上記の修正をした場合に限って、以下のような結果になります。
ndk.build.local: compile: [javac] Compiling 3 source files to /Users/k-ishida/Documents/TitModuleWorkspace/tts/build/classes [javac] /Users/k-ishida/Documents/TitModuleWorkspace/tts/build/generated/java/jp/isisredirect/tts/TtsModulePrototype.java:10: package org.mozilla.javascript does not exist [javac] import org.mozilla.javascript.Context; [javac] ^ ….. [javac] ^ [javac] 100 errors
以上をふまえると、現状のTi SDKでAndroid用モジュールをビルドするには、NDK r8d まででビルドするのが妥当なようです。