summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qjnihelpers.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/kernel/qjnihelpers.cpp')
-rw-r--r--src/corelib/kernel/qjnihelpers.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/corelib/kernel/qjnihelpers.cpp b/src/corelib/kernel/qjnihelpers.cpp
index a95194b66a..fbcd0606e6 100644
--- a/src/corelib/kernel/qjnihelpers.cpp
+++ b/src/corelib/kernel/qjnihelpers.cpp
@@ -45,6 +45,7 @@ QT_BEGIN_NAMESPACE
static JavaVM *g_javaVM = Q_NULLPTR;
static jobject g_jActivity = Q_NULLPTR;
+static jobject g_jClassLoader = Q_NULLPTR;
static inline bool exceptionCheck(JNIEnv *env)
{
@@ -79,6 +80,20 @@ jint QtAndroidPrivate::initJNI(JavaVM *vm, JNIEnv *env)
if (exceptionCheck(env))
return JNI_ERR;
+
+
+ jmethodID classLoaderMethodID = env->GetStaticMethodID(jQtNative,
+ "classLoader",
+ "()Ljava/lang/ClassLoader;");
+
+ if (exceptionCheck(env))
+ return JNI_ERR;
+
+ jobject classLoader = env->CallStaticObjectMethod(jQtNative, classLoaderMethodID);
+ if (exceptionCheck(env))
+ return JNI_ERR;
+
+ g_jClassLoader = env->NewGlobalRef(classLoader);
g_jActivity = env->NewGlobalRef(activity);
g_javaVM = vm;
@@ -96,4 +111,9 @@ JavaVM *QtAndroidPrivate::javaVM()
return g_javaVM;
}
+jobject QtAndroidPrivate::classLoader()
+{
+ return g_jClassLoader;
+}
+
QT_END_NAMESPACE