diff options
author | BogDan Vatra <bogdan@kdab.com> | 2018-07-16 14:20:17 +0300 |
---|---|---|
committer | BogDan Vatra <bogdan@kdab.com> | 2018-08-29 08:18:34 +0000 |
commit | e72bba4352a2c366887483a4d9ee5afd97589c0b (patch) | |
tree | 20504e61e9f3aa02e65f51f65e693469794d174b | |
parent | 6711472d14d8f675160d559978acee96c1fb25c6 (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.cpp | 18 | ||||
-rw-r--r-- | src/androidextras/jni/qandroidjnienvironment.h | 1 |
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) |