У меня есть dll С++, который я хочу использовать в Unity, экспортируя функции на С#. Проект Unity работает на устройствах Android, а код С++ использует java. Для инициализации С++ мне нужно сначала вызвать следующую функцию:
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);
Мой вопрос Как получить указатель JNIEnv в моем классе С#, а затем передать его как параметр в эту функцию?
Я не создатель этого API и не имею доступа к его модификации, поэтому мне нужно получить JavaVM от JNIEnv, а не наоборот.