UnsatisfiedLinkError on 64-bit Android when loading 32-bit JNI library (on LG Flex2) -
i've written android application calling 32-bit jni library. on galaxy note 4 (32-bit, snapdragon 805) works expected, on lg flex2 (64-bit, snapdragon 810) app works when passing parameter "--abi armeabi-v7a" adb (obviously).
however, when installing jar-file manually, android assumes 64-bit application, results in unsatisfiedlinkerror listed below.
this i've checked/tried: - there no 64-bit libraries present in whole apk - there single arch-specific directory inside apk (lib/armeabi-v7a)
- native libraries built "local_multilib := 32"
any idea why android insists on running application in 64-bit mode? i've read, android should automatically detect legacy 32-bit applications during installation when encountering 32-bit native shared libraries.
thank in advance, clemens
java.lang.unsatisfiedlinkerror: dalvik.system.pathclassloader[dexpathlist[[zip file "/data/app/at.ac.ait.modentity-2/base.apk"],nativelibrarydirectories=[/data/app/at.ac.ait.modentity-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "liblept.so" java.lang.runtime.loadlibrary(runtime.java:366)
ps: please no comments suggesting deploy 64-bit libs, app executed in 32-bit mode.
the issue dependency pulling in native libraries (realm, librealm-jni.so) many different architectures.
so installer detected single 64-bit shared library , decided application 64-bit aware/safe.
Comments
Post a Comment