diff options
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/kernel/qjnienvironment.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/corelib/kernel/qjnienvironment.cpp b/src/corelib/kernel/qjnienvironment.cpp index eea62116d6..ee57504327 100644 --- a/src/corelib/kernel/qjnienvironment.cpp +++ b/src/corelib/kernel/qjnienvironment.cpp @@ -222,12 +222,13 @@ JavaVM *QJniEnvironment::javaVM() */ bool QJniEnvironment::registerNativeMethods(const char *className, JNINativeMethod methods[], int size) { - jclass clazz = findClass(className); + QJniObject classObject(className); - if (!clazz) + if (!classObject.isValid()) return false; - if (d->jniEnv->RegisterNatives(clazz, methods, size / sizeof(methods[0])) < 0) { + jclass clazz = d->jniEnv->GetObjectClass(classObject.object()); + if (d->jniEnv->RegisterNatives(clazz, methods, size) < 0) { exceptionCheckAndClear(); d->jniEnv->DeleteLocalRef(clazz); return false; |