From dfb4b7856a82a72934211d9a1a44626777570d30 Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Mon, 1 Nov 2021 19:54:22 +0200 Subject: Android: check if objectClass() is not null in registerNativeMethods() In case the class doens't have a default constructor, checking for object.isValid() will give false because the object won't be created, however, the class could still be loaded and we could have a valid jclass. Pick-to: 6.2 Fixes: QTBUG-96069 Change-Id: I8d59e26d9d7c0e8e363ce443937091a374a24473 Reviewed-by: Ivan Solovev --- src/corelib/kernel/qjnienvironment.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/corelib/kernel/qjnienvironment.cpp b/src/corelib/kernel/qjnienvironment.cpp index a72078d2cf..9766ff4d3b 100644 --- a/src/corelib/kernel/qjnienvironment.cpp +++ b/src/corelib/kernel/qjnienvironment.cpp @@ -347,11 +347,12 @@ JavaVM *QJniEnvironment::javaVM() bool QJniEnvironment::registerNativeMethods(const char *className, const JNINativeMethod methods[], int size) { - QJniObject classObject(className); + const jclass clazz = findClass(className); - if (!classObject.isValid()) + if (!clazz) return false; - return registerNativeMethods(classObject.objectClass(), methods, size); + + return registerNativeMethods(clazz, methods, size); } #if QT_DEPRECATED_SINCE(6, 2) /*! -- cgit v1.2.3