2012-02-21 5 views
0

私はjniを使用するアンドロイドアプリケーションを持っており、Eclipse(cdtプラグインを使用)でビルドプロセスを自動化しようとしています。私は自分自身の静的ライブラリを構築する必要があり、プリコンパイルされたライブラリも使用する必要があります。このフォルダは、ビルドプロセス中にクリアされますので、私は(/ armeabiフォルダを、
a)は自分自身の共有ライブラリ(ここでは問題なし)
b)のビルドが完了した後を構築する必要がありますLIBSに既存のライブラリをコピーすることを意味
Iビルドスクリプトの一部としてlibsフォルダにファイルをコピー

私はb)にいくつか問題があります。私がやろうとしているのは、Android.mkファイルにinclude $(BUILD_SHARED_LIBRARY)の後にカスタムシェルスクリプトを挿入することです。残念ながら、これはうまくいきません。Android.mkファイルの完成後に/ libs/armeabiフォルダがクリアされるためです。

本当ですか?ポストビルドスクリプトをAndroid.mkに挿入する方法はありますか? jniコードをビルドした後、ビルド全体が完了する前にbashスクリプトを実行する方法はありますか(たとえば、Javaの部分がビルドされ、アプリケーションが実行を開始する前に)?私はeclipseのc/C++プロジェクトビルドの設定では、ある種の "ポストビルド"スクリプトが必要ですが、そのようなことはありません。 .soはコピーする簡単な方法とカスタムスクリプトを構築するために頼ることなく.Aのlibsがあるように見え、

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_LDLIBS := -llog 

LOCAL_C_INCLUDES += $(LOCAL_PATH) 

LOCAL_MODULE := player 
LOCAL_SRC_FILES := player.c 

include $(BUILD_SHARED_LIBRARY) 

$(shell ./copy-libs.sh) #this script will get called, but the files will be erased right after 

答えて

2

まあ:

はここで完全Android.mkファイルです。 NDKはndk-r5から始まる事前構築モジュールをサポートしており、必要に応じてビルド処理中に.aまたは.soライブラリをobj/libフォルダにコピーすることができます。

例と詳細な説明は、$ NDK_INSTALLATION_FOLDER/docs /内のPREBUILTS.htmlファイルにあります。

+0

ドキュメントはNDKには含まれていないようですが、事前ビルドに関する情報はhttps://developer.android.com/ndk/guides/prebuilts.htmlにあります。 – Georgie

関連する問題