android sdk r8 と NDK r5を導入
ネイティブ側のビルドがなかなか通らなかったのはAndroid.mkの書き方のせいだった
まずこの書き方は使えないみたいなので
[java]
LOCAL_CXXFLAGS += -I$(STL_INC) -I$(BOOST_INC)
[/java]
こんな感じに変更
[java]
LOCAL_C_INCLUDES := $(STL_INC)
LOCAL_C_INCLUDES += $(BOOST_INC)
[/java]
stlportライブラリをリンクするための(これまで使えていた)パス付きの書き方がうまく使えなかったので
[java]
LOCAL_LDLIBS += /cygdrive/c/android/android-ndk-r5/sources/xxxxxxxxx
[/java]
こんな感じに変更
[java]
LOCAL_LDLIBS += -lstlport_static
[/java]
その際stlportはNDK付属のものを使うため
android-ndk-r5sourcescxx-stlstlportlibsarmeabilibstlport_static.aを
android-ndk-r5platformsandroid-5arch-armusrlibにコピーして使ってみた
stlport関連は上記のような設定は必要ありませんでした。
jniフォルダにApplication.mkを作ってこんな感じに書いておくだけでいいみたい。
[java]
APP_STL := stlport_static
[/java]
しかし12/11追記:デバッグログ出したり、なんどかリビルドしていたら元の表示にもどった
なんだかいままでと表示が違う
調べてみて、もしstlが原因なら昔のライブラリに戻すかも
おかしかったときはビルド失敗していたのかなぁ
あとこの作業中にこんなビルドエラーが出てきてしばらく悩んだ
[java]
/cygdrive/d/xxxxxxx/xxxxxxx.o.d:1: *** target pattern contains no %4$s. Stop.
[/java]
これは プロジェクトフォルダ/obj/local以下あたりを一旦削除したら解消した。
あとndk-buildに V:=1 オプション付けたらビルド時の出力がそのまま出ることを知った。
こんな感じ
[java]
ndk-build -B -j V:=1
[/java]
コメントを残す