簡體   English   中英

從r6更新到r7后,Android NDK找不到JNI_GetCreatedJavaVMs

[英]Android NDK can't find JNI_GetCreatedJavaVMs after update from r6 to r7

我已將NDK版本從r6更新為r7。 之后,在編譯我的一個本機文件時出現此錯誤:

錯誤:未在此范圍內聲明'JNI_GetCreatedJavaVMs'

我正在為API級別8(Android 2.2)構建我的項目。 我檢查過了

(MY_NDK_PATH_R6)/android-8/arch-arm/usr/include/jni.h

聲明了GetCreatedJavaVMs ,文件jni.h實際上是符號鏈接

(MY_NDK_PATH_R6)/platforms/android-3/arch-arm/usr/include/jni.h

然后我查了一下

(MY_NDK_PATH_R7)/platforms/android-8/arch-arm/usr/include/jni.h

它實際上是一個文件,而不是符號鏈接。

我正在使用Eclipse構建我的項目,我在首選項中指定的唯一內容是ndk-build路徑。

編輯:好的,現在很清楚為什么找不到GetCreatedJavaVMs:

/*
 * 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?

我找到了解決方案。 您只需要實現JNI_OnLoad(JavaVM * vm,void * reserved)函數。 JVM是一個論點。 這可能是獲得JVM的更好方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM