我有一个C++动态链接库,我想通过将其导出到C#中的函数来在Unity中使用。Unity项目运行在安卓设备上,而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,而不是相反。