Make sure JNI_OnLoad is not called more than once
Since Android 5.0 Google introduce a nasty bug[1] which calls JNI_OnLoad more than once. Basically every time when a library is loaded JNI_OnLoad is called if found, but it calls *again* JNI_OnLoad of its .so dependencies! [1] Workaround https://code.google.com/p/android/issues/detail?id=215069 Change-Id: I81b4a94beedaad299267ac6deab2f9c3a1693a62 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
This commit is contained in:
@@ -145,6 +145,11 @@ QT_END_NAMESPACE
|
|||||||
#ifndef Q_OS_ANDROID_NO_SDK
|
#ifndef Q_OS_ANDROID_NO_SDK
|
||||||
Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void * /*reserved*/)
|
Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void * /*reserved*/)
|
||||||
{
|
{
|
||||||
|
static bool initialized = false;
|
||||||
|
if (initialized)
|
||||||
|
return JNI_VERSION_1_6;
|
||||||
|
initialized = true;
|
||||||
|
|
||||||
QT_USE_NAMESPACE
|
QT_USE_NAMESPACE
|
||||||
typedef union {
|
typedef union {
|
||||||
JNIEnv *nativeEnvironment;
|
JNIEnv *nativeEnvironment;
|
||||||
|
|||||||
Reference in New Issue
Block a user