![](/img/trans.png)
[英]Why do I get “JNI_GetCreatedJavaVMs returned -1” error while loading the xlsx package in R?
[英]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.