gpt4 book ai didi

android-ndk - 如何从 native android 可执行文件获取对 JVM 的引用?

转载 作者:行者123 更新时间:2023-12-05 07:48:55 29 4
gpt4 key购买 nike

我已经使用 NDK 成功构建并运行了 native 可执行文件。它是一个没有 java 入口点的常规 C++ 应用程序(例如,没有 xyz_activity,只有 int main())。现在我需要通过 JNI 从 android 运行时访问一些方法,但我似乎无法掌握 JavaVM*。 NDK 不导出 jni_getcreatedjavavms,AndroidRuntime::getJavaVM() 也不导出。这样我就只剩下 JNI_OnLoad 了,它只为共享库调用。我已经尝试将项目拆分为一个可执行文件和一个包含 JNI_OnLoad 的 .so 文件,但我猜这仅在执行显式 System.loadLibrary 调用时才有效。但是,该项目根本不包含任何 Java 代码。我如何获得对 JVM 的引用?

最佳答案

如回答here您可以使用 jni 环境 (JNIEnv) 访问 JVM:

JavaVM* jvm;
int gotVM = (*jniENV).GetJavaVM(&jvm);

关于android-ndk - 如何从 native android 可执行文件获取对 JVM 的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37932946/

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