MIPSデバイス用に構築する必要のある独自のJNIアプリケーションを入手しました。「ビルド環境の初期化」、NDKドキュメントの一部、いくつかのGoogleグループのスレッド、多数のStackOverflowの質問を読みましたが、まだ答えがありません。
これまでのところ、Googleのリポジトリスクリプトを使用してAndroidソースをチェックアウトし、の下に置いてい~/AndroidSource
ます。また、SDK~/AndroidSDK
とNDKを別々にダウンロードしました~/AndroidNDK
。私が構築しようとしているコードは別の場所にあります。SDKとNDKのバイナリが私のパスにあります。ビルドには、2つの異なるバージョンのNDKとAndroidソースツリーの下のバージョンを使用しようとしましたが、さまざまな問題が発生しました。私の現在のセットアップでは、Androidソースから個別にダウンロードされたNDKr8bを使用しています。
アプリケーションにはとがAndroid.mk
ありjni/Android.mk
ます。ただし、後者のいくつかのディレクティブは、次のようなパスを指します。
frameworks/base/include
system/core/include
プレフィックスなし。これらはAndroidソース内のそれぞれのディレクトリを指すことを意図していると思ったので、現在のディレクトリにシンボリックリンクしました。シンボリックリンクとmakefileおよびソースのハッキングをさらに行った後、アプリケーションをコンパイルしましたが、現在、欠落しているメソッド本体への参照が多く、リンクフェーズでスタックしています。その間ずっと、私は自分が何か間違ったことをしていることを知っていました。
懸念がある場合は、Linuxx86_64ホストを使用しています。
だから私の質問は:
JNIアプリケーションのビルド環境をセットアップするための適切な方法は何ですか?どのような環境変数、シンボリックリンク、パス拡張を設定する必要がありますか?スクリプトを1回呼び出す必要がありますか、それとも各ndk-build
呼び出しの前に呼び出す必要がありますか?
また、私が間違っている概念や用語について訂正していただければ幸いです。