1

Android ndk の例 android-ndk-r6b/samples/hello-jni をコンパイルしようとしていますが、うまくいきません。

私が得ているコンパイルエラーは次のとおりです。

 $:/media/rober/android/android-ndk-r6b/samples/hello-jni$ ndk-build
    Gdbserver      : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver
    Gdbsetup       : libs/armeabi/gdb.setup
    Compile thumb  : hello-jni &lt= hello-jni.c
    /media/rober/android/android-ndk-r6b/samples/hello-jni/jni/hello-jni.c:17:20: error: string.h: No such file or directory
    /media/rober/android/android-ndk-r6b/samples/hello-jni/jni/hello-jni.c:18:17: error: jni.h: No such file or directory
    /media/rober/android/android-ndk-r6b/samples/hello-jni/jni/hello-jni.c:27: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Java_com_example_hellojni_HelloJni_stringFromJNI'
    make: *** [/media/rober/android/android-ndk-r6b/samples/hello-jni/obj/local/armeabi/objs-debug/hello-jni/hello-jni.o] Error 1


環境:


     Ubuntu
        $:/media/rober/android/android-ndk-r6b/samples/hello-jni$ lsb_release -a
        LSB モジュールはありません。
        ディストリビューター ID: Ubuntu
        説明: Ubuntu 11.10
        リリース: 11.10
        コードネーム:オニリック

        ジャワ
        $:/media/rober/android/android-ndk-r6b/samples/hello-jni$ java -バージョン
        Java バージョン「1.6.0_22」
        Java(TM) SE ランタイム環境 (ビルド 1.6.0_22-b04)
        Java HotSpot(TM) Server VM (ビルド 17.1-b03、混合モード)

        作る
        $:/media/rober/android/android-ndk-r6b/samples/hello-jni$ make -v
        GNU メイク 3.81
        Copyright (C) 2006 Free Software Foundation, Inc.
        これはフリー ソフトウェアです。条件のコピーについてはソースを参照してください。
        保証はありません。商品性や適合性のためでさえありません
        特定の目的。
        i686-pc-linux-gnu 用にビルドされたこのプログラム

        AWK
        $:/media/rober/android/android-ndk-r6b/samples/hello-jni$ awk -W バージョン
        mawk 1.3.3 1996 年 11 月、Copyright (C) Michael D. Brennan
        コンパイルされた制限:
        最大NF 32767
        sprintf バッファ 1020

        アンドロイド
        $:/media/rober/android/android-ndk-r6b/samples/hello-jni$ エクスポート | grep Android
        宣言 -x ANDROID_HOME="/media/rober/android/android-sdk-linux_86"
        宣言 -x ANDROID_NDK="/media/rober/android/android-ndk-r6b/"
        宣言 -x ANDROID_NDK_ROOT="/media/rober/android/android-ndk-r6b/"
        宣言 -x ANDROID_SDK_HOME="/media/rober/android/android-sdk-linux_86"

        PATH (読みやすいように「\n」で区切られています)
        $:/media/rober/android/android-ndk-r6b/samples/hello-jni$ エクスポート | grep パス | grep ビン
        宣言 -x PATH="
        /media/rober/dev/apache-ant-1.7.1/bin:
        /media/rober/dev/apache-maven-3.0.3/bin:
        /media/rober/android/android-sdk-linux_86/platform-tools:
        /media/rober/android/android-sdk-linux_86/tools:
        /media/rober/android/android-ndk-r6b/:
        /usr/lib/lightdm/lightdm:
        /usr/local/sbin:
        /usr/ローカル/ビン:
        /usr/sbin:
        /usr/ビン:
        /sbin:
        /置き場:
        /usr/ゲーム:
        /media/rober/dev/jdk1.6.0_22/bin:
        /media/rober/dev/apache-ant-1.7.1/bin:
        /media/rober/dev/apache-maven-3.0.3/bin:
        /media/rober/android/android-sdk-linux_86/platform-tools:
        /media/rober/android/android-sdk-linux_86/tools:
        /メディア/ロバー/アンドロイド/アンドロイド-ndk-r6b/

同じ ndk ディレクトリ構造内にある場合でも、string.h ファイルと jni.h ファイルを検索する場所を ndk に指示する環境変数または何らかの構成が欠落しているように感じますが、私は '何が起こっているのかよくわかりません。

あらゆる種類のヒントは大歓迎です:)

4

2 に答える 2

1

編集:私はr7にアップデートしましたが、すべてがうまく動作します。

于 2011-12-28T03:05:53.530 に答える
0

試す

find /media/rober/android/ -name string.h

また

sudo find / -name string.h

最初にうまくいかない場合

于 2011-12-27T11:40:32.727 に答える