2013/04/23

NDK r8e でTitanium Mobile Android Module がビルドできない

Titanium SDKをソースから作成する場合に、NDK r8e (2013/04/22時点で最新)を使ってビルドすると、うまくいかない件が報告されています。
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 まででビルドするのが妥当なようです。



0 件のコメント:

コメントを投稿