Titanium SDK 6.0.0.GAでAndroidモジュールをビルド

appcelerator-titanium_sdk-600gaTitanium SDK 6.0.0.GA向けにAndroidモジュールをリビルドしたときの覚書。

環境: Mac OS X 10.11.6, Titanium SDK 6.0.0.GA, Android SDK Tools 25.2.3

公式サイトでSDK 6.0.0.GAになって変わったところをチェック

 

< 2017/01/12 Modified >
参考になる記事を見つけた。

 

antのインストールが必須ではなくなって、ビルドコマンドは「ti build」に統一するようになったみたい。

ビルドし直したのはAndroid向けのプッシュ通知を受け取るモジュール

 

manifestを変更
$ less manifest

apiversion: 3
minsdk: 6.0.0.GA
architectures: armeabi-v7a x86

ビルド実行
$ appc ti build -p android --build-only

エラー

[ERROR] Failed to run ndk-build
[ERROR]
[ERROR] jni/Android.mk:35: warning: overriding commands for target `/Users/daiki/Documents/Appcelerator_Studio_Workspace/gcmjs/build/generated/KrollGeneratedBindings.cpp'
[ERROR] jni/Android.mk:35: warning: ignoring old commands for target `/Users/daiki/Documents/Appcelerator_Studio_Workspace/gcmjs/build/generated/KrollGeneratedBindings.cpp'
[ERROR] In file included from /Users/daiki/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.GA/android/native/include/Proxy.h:11:0,
[ERROR]                  from jni/net.iamyellow.gcmjs.GcmjsModule.h:12,
[ERROR]                  from jni/net.iamyellow.gcmjs.GcmjsModule.cpp:10:
[ERROR] /Users/daiki/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.GA/android/native/include/v8.h:345:1: error: expected unqualified-id before 'using'
[ERROR] /Users/daiki/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.GA/android/native/include/v8.h:481:1: error: expected unqualified-id before 'using'
[ERROR] /Users/daiki/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.GA/android/native/include/v8.h:882:1: error: expected unqualified-id before 'using'
[ERROR] /Users/daiki/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.GA/android/native/include/v8.h:5424:35: error: 'virtual v8::EmbedderHeapTracer::~EmbedderHeapTracer()' declared virtual cannot be defaulted in the class body
[ERROR] make: *** [/Users/daiki/Documents/Appcelerator_Studio_Workspace/gcmjs/build/generated/obj/local/armeabi-v7a/objs/net.iamyellow.gcmjs/net.iamyellow.gcmjs.GcmjsModule.o] Error 1

 

検索するとAndroid NDK r12bにすると成功するという情報が。

今の最新はr13bなのでこちらをダウンロードして試してみる。
$ cd /Applications/
$ curl -O https://dl.google.com/android/repository/android-ndk-r13b-darwin-x86_64.zip
$ unzip android-ndk-r13b-darwin-x86_64.zip
$ rm android-ndk-r13b-darwin-x86_64.zip

環境変数変更。今はこれ不要かも。
$ less ~/.bash_profile

export ANDROID_NDK=/Applications/android-ndk-r13b

確認
$ source ~/.bash_profile
$ echo $ANDROID_NDK

Appcelerator CLIを設定
$ appc ti setup

[ERROR] Invalid Android NDK path
Required file does not exist: "/Applications/android-ndk-r13b/RELEASE.txt"

RELEASE.txtがないと指定できないので、コピーして作る
$ cp android-ndk-r9d/RELEASE.TXT android-ndk-r13b/
$ less android-ndk-r13b/RELEASE.TXT

r13b (64-bit)

もう一度Appcelerator CLIを設定
$ appc ti setup

プロジェクトに戻ってビルドしてみる。
$ cd ~/Documents/Appcelerator_Studio_Workspace/gcmjs/
$ appc ti build -p android --build-only

前とは違うエラー

[ERROR] Failed to run ndk-build
[ERROR]
[ERROR] jni/Android.mk:35: warning: overriding commands for target `/Users/daiki/Documents/Appcelerator_Studio_Workspace/gcmjs/build/generated/KrollGeneratedBindings.cpp'
[ERROR] jni/Android.mk:35: warning: ignoring old commands for target `/Users/daiki/Documents/Appcelerator_Studio_Workspace/gcmjs/build/generated/KrollGeneratedBindings.cpp'
[ERROR] warning: unknown warning option '-Wno-psabi' [-Wunknown-warning-option]
[ERROR] In file included from jni/net.iamyellow.gcmjs.GcmjsModule.cpp:12:
[ERROR] /Users/daiki/Library/Application Support/Titanium/mobilesdk/osx/6.0.0.GA/android/native/include/AndroidUtil.h:57:49: warning: format specifies type 'int' but the argument has type 'long' [-Wformat]

 

今度はandroid-ndk-r12bをインストールしたらビルド成功した。今までのr13bをr12bに変更するだけ。

 

でも6.0.0.GAでアプリをビルドしたらopenPhotoGalleryで選択した後エラーになったので、本番運用はしばらく様子見。

 

< Related Posts >