【发布时间】:2011-11-16 02:38:35
【问题描述】:
我已将我的 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
但是在这种情况下我应该如何获取虚拟机呢?
【问题讨论】:
标签: java android java-native-interface android-ndk