aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBogDan Vatra <bogdan@kdab.com>2018-07-16 14:20:17 +0300
committerBogDan Vatra <bogdan@kdab.com>2018-08-29 08:18:34 +0000
commite72bba4352a2c366887483a4d9ee5afd97589c0b (patch)
tree20504e61e9f3aa02e65f51f65e693469794d174b
parent6711472d14d8f675160d559978acee96c1fb25c6 (diff)
Allow users to find all classes
QAndroidJniEnvironment::findClass is a convenient method needed to find classes in all class loaders. [ChangeLog][QtAndroid] QAndroidJniEnvironment::findClass convenient method to find classes in all class loaders. Change-Id: I23c9e8a02aa7ca02cf707be5548ce1f8bb555dd7 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
-rw-r--r--src/androidextras/jni/qandroidjnienvironment.cpp18
-rw-r--r--src/androidextras/jni/qandroidjnienvironment.h1
2 files changed, 19 insertions, 0 deletions
diff --git a/src/androidextras/jni/qandroidjnienvironment.cpp b/src/androidextras/jni/qandroidjnienvironment.cpp
index 08f0c71..585c442 100644
--- a/src/androidextras/jni/qandroidjnienvironment.cpp
+++ b/src/androidextras/jni/qandroidjnienvironment.cpp
@@ -83,6 +83,19 @@ QT_BEGIN_NAMESPACE
Returns the JNI Environment pointer.
*/
+/*!
+ \fn jclass QAndroidJniEnvironment::findClass(const char *className)
+
+ Searches for \a className using all available class loaders. Qt on Android
+ uses a custom class loader to load all the .jar files and it must be used
+ to find any classes that are created by that class loader because these
+ classes are not visible in the default class loader.
+
+ Returns the class pointer or null if is not found.
+
+ \since Qt 5.12
+ */
+
QAndroidJniEnvironment::QAndroidJniEnvironment()
: d(new QJNIEnvironmentPrivate)
@@ -108,6 +121,11 @@ QAndroidJniEnvironment::operator JNIEnv*() const
return d->jniEnv;
}
+jclass QAndroidJniEnvironment::findClass(const char *className)
+{
+ return QJNIEnvironmentPrivate::findClass(className, d->jniEnv);
+}
+
static void clearException(bool silent)
{
QAndroidJniEnvironment env;
diff --git a/src/androidextras/jni/qandroidjnienvironment.h b/src/androidextras/jni/qandroidjnienvironment.h
index 654117b..4edf8f4 100644
--- a/src/androidextras/jni/qandroidjnienvironment.h
+++ b/src/androidextras/jni/qandroidjnienvironment.h
@@ -57,6 +57,7 @@ public:
static JavaVM *javaVM();
JNIEnv *operator->();
operator JNIEnv*() const;
+ jclass findClass(const char *className);
private:
Q_DISABLE_COPY(QAndroidJniEnvironment)