gpt4 book ai didi

java - 从 r6 更新到 r7 后,Android NDK 找不到 JNI_GetCreatedJavaVMs

转载 作者:太空宇宙 更新时间:2023-11-03 13:03:09 25 4
gpt4 key购买 nike

我已将我的 NDK 版本从 r6 更新到 r7。之后,我在编译我的一个 native 文件时遇到此错误:

error: 'JNI_GetCreatedJavaVMs' was not declared in this scope

我正在为 API 级别 8 (Android 2.2) 构建我的项目。我检查过

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

在声明 GetCreatedJavaVMs 的地方,文件 jni.h 实际上是指向

的符号链接(symbolic link)

(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

它实际上是一个文件,而不是符号链接(symbolic link)。

我正在使用 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 的更好方法。

关于java - 从 r6 更新到 r7 后,Android NDK 找不到 JNI_GetCreatedJavaVMs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8145985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com