获取有效的 JNIEnv 指针
2022-09-03 07:31:18
我有一个C++ dll,我想通过将函数导出到C#在Unity中使用。Unity项目在Android设备上运行,C++代码使用java。要初始化C++我需要先调用以下函数:
void api_initialize(JNIEnv* env, jobject* app_context, jobject* class_loader) {
JavaVM* vm = nullptr;
env->GetJavaVM(&vm);
if (!vm) {
return;
}
//Do other proprietary things
}
在Unity中,我有以下导出的Dll函数
[DllImport (dllName)]
private static extern void api_initialize (IntPtr java_env, IntPtr app_context, IntPtr class_loader);
我的问题是,如何在我的C#类中获取JNIEnv指针,然后作为参数传递给此函数?
我不是这个API的创建者,也没有修改它的访问权限,所以我需要从JNIEnv获取JavaVM,而不是相反。