diff options
author | BogDan Vatra <bogdan@kdab.com> | 2016-07-20 15:49:43 +0300 |
---|---|---|
committer | BogDan Vatra <bogdan@kdab.com> | 2016-07-20 13:04:09 +0000 |
commit | fc30c6d011f705ae8b56f8703757be0d7375e1bf (patch) | |
tree | 00d3e6e193527ad7cde6ca605af4e7a4465cdc93 | |
parent | ccaaa0f9d0268142f3678476655562cb5eb1dfef (diff) | |
download | qtlocation-fc30c6d011f705ae8b56f8703757be0d7375e1bf.tar.gz |
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: I0401553f80c10b14b837a96dc979d0e7341396ea
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
-rw-r--r-- | src/plugins/position/android/src/jnipositioning.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/plugins/position/android/src/jnipositioning.cpp b/src/plugins/position/android/src/jnipositioning.cpp index c61540d5..cdb7ea18 100644 --- a/src/plugins/position/android/src/jnipositioning.cpp +++ b/src/plugins/position/android/src/jnipositioning.cpp @@ -540,6 +540,11 @@ static bool registerNatives(JNIEnv *env) Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void * /*reserved*/) { + static bool initialized = false; + if (initialized) + return JNI_VERSION_1_6; + initialized = true; + typedef union { JNIEnv *nativeEnvironment; void *venv; |