web-dev-qa-db-ja.com

EclipseでAndroid NDKをインストールして使用する

Android SDKをしばらくの間Eclipse(MAC OSX)で実行しています。NDKをダウンロードし、C/C++ツールをEclipseにインストールしましたが、誰でも私をガイドできますNDKを使用していますか?たとえば、通常のAndroidプロジェクトを作成し、代わりにNDKでビルドしますか?

誰かが知っていれば、まともなチュートリアルで本当にできます。

編集:OKですので、NDKをインストールしました(私は思う)が、誰もそれを使用する方法を知っていますか?私はこれまで得ました( here から取得):

ターミナルを実行

cd〜/ Android-ndk-1.5_r1

aPP = hello-jniを作成します

Hello-jniサンプルアプリケーションを実行するために、ターミナルに次のようなエラーが表示されます。

Android NDK:不明なアプリケーションに定義されたAPP変数:hellojni
Android NDK:次のいずれかを使用できます。
build/core/main.mk:81:*** Android NDK:Aborting。Stop。Stop。

なぜアイデアがありますか?

45
ingh.am

簡単に説明すると、NDKを使用するEclipseからAndroidアプリをビルドするには2つのステップが必要です。

まず、ターミナル内で、プロジェクトでNDKビルドスクリプトを実行する必要があります。プロジェクトディレクトリのルートにcdし、そのディレクトリ内でndk-buildスクリプトを実行します。

例えば:

cd ~/workspace/hello-jni
./~/Android-ndk-1.5_r1/ndk-build

これを実行すると、プロジェクトディレクトリ内のobjディレクトリ内に* .SOファイルが作成される出力が表示されます。

* .SOファイルを入手したら、Eclipseを使用してAndroid NDKを使用してアプリケーションをビルドする最後のステップは、他のアプリケーションと同様にEclipseでビルドし、テスト用にデプロイすることです。

C/C++コードに変更を加える場合、Eclipse内からアプリケーションを再度ビルドおよびデプロイする前に、ステップ1を繰り返し、*。SOファイルを再生成する必要があります。

Android NDKを使用することで、あなたのAndroidアプリはまだJavaに基づいています。彼らはC/C++で書かれたコードと通信しているだけです。 Java Native Interface 経由で。

最後に、NDKの開発を支援するEclipseプラグインを知りません。私が公式に学んだNDKについて知っているすべて Android NDKドキュメント 。気軽にコメントして、応答で解決できることがあれば教えてください。

25
Rob S.

ネイティブ開発とデバッグのサポートは、ADTバージョン20からEclipse環境に導入されました。 http://tools.Android.com/recent/usingthendkplugin

  • Eclipse設定からNDKへのパスを設定-> Android-> NDK
  • プロジェクトを右クリックし、Android Tools-> Add Native Supportを選択します

developer.Android.comでは、Cygwinも必要であると述べています。

http://developer.Android.com/tools/sdk/ndk/index.html#Contents

必要な開発ツール

  • すべての開発プラットフォームで、GNU Make 3.81以降が必要です。以前のバージョンのGNU Makeは動作する可能性がありますが、テストされていません。
  • Awkの最新バージョン(GNU AwkまたはNawk))も必要です。
  • Windowsの場合、Cygwin 1.7以降が必要です。 NDKはCygwin 1.5インストールでは機能しません。
12
Hamid Fadishei

NDKのdocsディレクトリには、NDK自体の使用方法に関するかなり良い情報があります。概要、Application.mk、およびAndroid.mk HTMLドキュメントをお読みください。先に進む前に、Sun JNI PDFをグーグル検索してダウンロードし、JNIが何であるかを学習してください。これは、NDKを使用して多数のC/C++コードをライブラリにコンパイルするだけがプロセスの一部であるためです。 C/C++を呼び出すネイティブJavaコードを記述する必要があり、ネイティブJavaコードが呼び出すことができるJNI規則に準拠するC/C++でラッパー関数を作成する必要があります。 JNIは古くからありますが、Android固有ではありません。したがって、それについて学ぶには、JNI向けのチュートリアルに従って、javahやjavacなどのコマンドラインツールを使用し、基本を理解した後にNDKとの統合に戻ることができます。 (これらのCシムがどのように見えるかの例については、NDKのhello-jniサンプルを参照してください。そこにあるCソースファイルは、通常シムがどのように見えるかを示します。 、ネイティブメソッドを持つJavaクラスを作成し、javahで処理し、Cヘッダーを生成してから、生成された関数プロトタイプに準拠するC関数をコーディングします)。

注:NDKドキュメントでは、コマンドラインから手動でビルドし、Eclipseでアプリをビルドします(特にC/C++コードを変更する場合は、面倒な手順が必要です)。 Eclipseと簡単に統合できるため、EclipseからビルドするたびにNDKが実行されます。方法を確認するには、 こちらをご覧ください

5
slogan621

これは、Eclipse内からゼロからプロジェクトを作成したい他のユーザーの利益のためです。このブログでここで説明した手順を実行したところ、問題なく動作します。 http://mhandroid.wordpress.com/2011/01/ 23/using-Eclipse-for-Android-cc-development /

3
Viren

質問に直接答えるには、プロジェクトフォルダー内のネイティブコードを含むフォルダーでndk-buildを実行する必要があります。これにより、Eclipseのjniの下のファイルエクスプローラー/リソースツリーにある.soファイルが作成されます。これらの関数は、コード内の構文が正しい場合、Javaコードから呼び出すことができます。

Android開発者ツールとNDKをインストールして把握する際に多くのヘルプソースを見つけました。私の経験を共有し、できればお返しするために ブログ投稿 を書きました。私の答えを理解するのに役立つかもしれないそこに着くのを助けたコミュニティ: http://workingmatt.blogspot.co.uk/2013/03/set-up-Android-sdk-and-ndk.html

1
WorkingMatt