久しぶりに Titanium の Android のアプリやモジュールをビルドしたらハマったこと


Titanium もいつのまにか 6.0.0 の RC が出て、V8がアップデートされたから 全Androidのモジュールビルドしなおしな!という事だと聞いて。

そう言えばSDKが4になった頃からノーメンテだったのを思い出したので、本当に久しぶりにビルドしてみたところ色々あったのでメモを残しておきます。
あとソラで打ててたCLIを色々忘れていて驚きました。

環境

OS: MacOS 10.12.1
Node.js: 6.9.1
npm: 3.10.8
Titanium CLI Version: 5.5.1

アプリのビルド時にinvalid session

appc ti build -p android とかすると、こんなん出る。

[ERROR] invalid session

なんとなく手癖で


appc logout
appc login

したら治りました。

Path must be a string. Received undefined

node.js が新し杉。
Node.jsが6.x系でAndroidをビルドしようとすると出るらしい。

node.jsを4系にダウンロードして解決。
sudo n 4.6.1

モジュールが使えない msg:java.lang.UnsatisfiedLinkError

[ERROR] linker: /data/app/myapp/lib/arm/libcom.mymodule.so: has text relocations
[ERROR] TiApplication: (KrollRuntimeThread) [28,79] Sending event: exception on thread: KrollRuntimeThread msg:java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/myapp/lib/arm/libcom.mymodule.so: has text relocations; Titanium 5.5.1,2016/09/27 05:39,b18727f

なんだか良くわからないけど、しばらくモジュールをbuildしてなかったからなぁ。
と言う訳で、Android用のmoduleを、まずは現行の SDK 5.5.1.GAでビルドしなおす事に。

Androidモジュールのビルドってどうやるんだっけ?

ant ですよ!
android というか Java さわらなさ過ぎ問題。

当たり前すぎてREADMEとかに書いてないけど忘れる時は忘れる。
あんなに毎日アントアントメイブンメイブンだった日々はもうはるか昔。

モジュールのビルド時のエラー

こんなん出ました。


% ant
Buildfile: /Users/me/module/MyModule/android/build.xml

BUILD FAILED
/Users/me/module/MyModule/android/build.xml:37: Cannot find /Users/me/Library/Application Support/Titanium/mobilesdk/osx/4.0.0.GA/module/android/build.xml imported from /Users/me/module/MyModule/android/build.xml

build.propertiesに指定されているSDKが入ってなかった。

appc ti sdk select して、存在するSDKを確認の上、build.propertiesのtitanium.platformのPATHを変更する。

SDK 6.0.0対応は?

SDK 6.0.0がGAになったら、後日またビルドします。