Android NDK(初めての使用)と簡単なCファイルのコンパイルにいくつか問題があります。奇妙なことは、標準のヘッダーファイル自体にこれらのコンパイルエラーがあることです。これらのコンパイルエラーは、インクルードファイルがすべて含まれていない限り、これらのファイル内でエラーが生成されることはありません。ここに私がしたものがあります...Android NDK標準ヘッダファイルコンパイルエラー
javac myJavaFile.java
javah -d location/include location.MyJavaFile
これはうまく動作し、適切なヘッダーファイルを作成します。私はその後、私の関連するCファイルでアンドロイドndkのCコンパイラを実行するが、私は標準のヘッダーファイルにエラーが発生します。次のように私のコマンドがある(読みやすくするための絶対パスを短縮)
...android-ndk-r11c-windows-x86_64\android-ndk-r11c\toolchains\x86_64-4.9\prebuilt\
windows-x86_64\bin\x86_64-linux-android-gcc.exe -I ...jdk1.6.0_35\include -I
...android-ndk-r11c-windows-x86_64\android-ndk-r11c\platforms\android-18\arch-x86\usr\
include -I ...jdk1.6.0_35\include\win32 -c myCFile.c
これをやったときに、私は次のように生成されたエラーを取得:
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:621:25: error: expected ')' before '*' token
jcharArray (JNICALL *NewCharArray)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:623:26: error: expected ')' before '*' token
jshortArray (JNICALL *NewShortArray)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:625:24: error: expected ')' before '*' token
jintArray (JNICALL *NewIntArray)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:627:25: error: expected ')' before '*' token
jlongArray (JNICALL *NewLongArray)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:629:26: error: expected ')' before '*' token
jfloatArray (JNICALL *NewFloatArray)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:631:27: error: expected ')' before '*' token
jdoubleArray (JNICALL *NewDoubleArray)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:634:25: error: expected ')' before '*' token
jboolean * (JNICALL *GetBooleanArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:636:22: error: expected ')' before '*' token
jbyte * (JNICALL *GetByteArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:638:22: error: expected ')' before '*' token
jchar * (JNICALL *GetCharArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:640:23: error: expected ')' before '*' token
jshort * (JNICALL *GetShortArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:642:21: error: expected ')' before '*' token
jint * (JNICALL *GetIntArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:644:22: error: expected ')' before '*' token
jlong * (JNICALL *GetLongArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:646:23: error: expected ')' before '*' token
jfloat * (JNICALL *GetFloatArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:648:24: error: expected ')' before '*' token
jdouble * (JNICALL *GetDoubleArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:651:19: error: expected ')' before '*' token
void (JNICALL *ReleaseBooleanArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:653:19: error: expected ')' before '*' token
void (JNICALL *ReleaseByteArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include\win32/jni_md.h:11:19: error: expected declaration specifiers before '__declspec'
#define JNIEXPORT __declspec(dllexport)
だから私はここで間違って何をやっていますか?間違ったコンパイラ?インクルードファイル、jni.hは存在します。私はWindows 7 Pro 64ビットで動作しています。
ありがとうございました!それが私の必要なものです!あなたの助けをありがとう! –