ラベル NDK の投稿を表示しています。 すべての投稿を表示
ラベル NDK の投稿を表示しています。 すべての投稿を表示

2014年4月1日火曜日

Android の Nativeオブジェクト が更新エラーになった時の回避方法

以下のようなエラーの状態ですね。
このエラーの特徴は、起こったり起こらなかったりすることです。


make: *** [libs/armeabi/libgnustl_shared.so] Error 1
make: *** Deleting file `libs/armeabi/libgnustl_shared.so'

これは、動的ライブラリをバージョン管理してしまった場合に発生するようです。

私の場合は、git管理から外したら、エラーが発生しなくなりました。

Android で Nativeコードのログを出力する

Android.mk で以下のライブラリをインクルードすること。

LOCAL_LDLIBS +=  -llog -ldl

ログ出力側の Native コードは、以下の用に記述する。


NDKでOpenCVを使ったNativeコードを書く


EclipseでOpenCVのAndroid用の設定が出来たら、NativeでOpenCVを使う設定します。
Javaで確保したMatオブジェクトを、Nativeで処理したい場合には必須でしょう。

ちなにみ以下は、OpenCV 2.4.1の場合です。
(OpenCVのライブラリをアーキテクチャ毎にアプリに内包出来るのが、2.4.1まで)

以下の用に、プロジェクトの「properties → C/C+ General → Paths and Symbols 」から設定を行います。

















また、ビルド時にOpenCVに付属する OpenCV.mk も使う必要があるため、
Android.mkは以下の用になります。


OpenCV_CAMERA_MODULES := off
~
LOCAL_C_INCLUDES += ${LOCAL_PATH}

までがデフォルトのmkファイルに追加する部分です。

2014年3月29日土曜日

Android NDK でSTLを使用する

Android NDKで cpp のコードを使用する際、そのままだと <string>などが使用できない。
STLを使用できるよう、設定を変更する。

行うことは簡単で、jniディレクトリにApplication.xmlを作成したら、以下の行を追加する。

APP_STL         := stlport_static

以上でOK。