私はNDKバージョンをr6からr7に更新しました。その後、私のネイティブファイルをコンパイルするときにこのエラーが発生します。Android NDKはr6からr7への更新後にJNI_GetCreatedJavaVMsを見つけることができません。
error: 'JNI_GetCreatedJavaVMs' was not declared in this scope
APIレベル8(Android 2.2)用にプロジェクトをビルドしています。私はGetCreatedJavaVMs
はその後、私は
(MY_NDK_PATH_R7)/platforms/android-8/arch-arm/usr/include/jni.h
をチェックし、それが実際にはファイルで宣言され、ファイルjni.h
が実際
(MY_NDK_PATH_R6)/platforms/android-3/arch-arm/usr/include/jni.h
へのシンボリックリンクです
(MY_NDK_PATH_R6)/android-8/arch-arm/usr/include/jni.h
を検討してきました、シンボリックリンクではありません。
Eclipseでプロジェクトをビルドしていますが、環境設定で指定した唯一のものはndk-build
へのパスです。
EDIT:
/*
* VM initialization functions.
*
* Note these are the only symbols exported for JNI by the VM.
*/
#if 0 /* In practice, these are not exported by the NDK so don't declare them */
jint JNI_GetDefaultJavaVMInitArgs(void*);
jint JNI_CreateJavaVM(JavaVM**, JNIEnv**, void*);
jint JNI_GetCreatedJavaVMs(JavaVM**, jsize, jsize*);
#endif
しかし、どのように私はこのケースでVMを取得する必要があります:GetCreatedJavaVMsが見つからなかった理由をOK、それが今明らかですか?
これは優れた観察です。私は静的変数に保存し、必要なときにいつでも再利用することがうまくいくことを発見しました。 –