#include <dlfcn.h> #include <jni.h> #include <string> extern "C" { JNIEXPORT jlong JNICALL Java_com_google_vr_platform_Dvr_nativeLoadLibrary( JNIEnv* env, jclass, jstring java_library) { if (!java_library) return 0; // Convert the Java String object to a C++ null-terminated string. const char* data = env->GetStringUTFChars(java_library, NULL); size_t size = env->GetStringUTFLength(java_library); std::string library(data, size); env->ReleaseStringUTFChars(java_library, data); // Return the handle to the requested library. return reinterpret_cast<jlong>( dlopen(library.c_str(), RTLD_NOW | RTLD_LOCAL)); } } // extern "C"