我已经编写了一个Android应用程序,调用一个32位JNI库。在Galaxy Note4(32位,Snapdrag805)上,一切都按预期运行,在LG Flex2 (64位,Snapdrag810)上,该应用程序只有在向ADB (显然)传递参数"--abi armeabi-v7a“时才能运行。
然而,当手动安装jar文件时,安卓假设它是一个64位应用程序,这将导致下面列出的UnsatisfiedLinkError。
这是我检查/尝试过的:-在整个APK中没有64位库-在APK中只有一个arch特定的目录(lib/armeabi-v7a)
构建的
知道为什么Android坚持在64位模式下运行这个应用程序吗?据我所知,Android应该会在安装过程中仅遇到32位本机共享库时自动检测遗留的32位应用程序。
先谢谢你,克莱门斯
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)注:请没有意见建议部署64位库,我希望该应用程序在32位模式下执行。
发布于 2016-01-28 18:07:33
这个问题是一个为许多不同架构拉入本机库(realm,librealm-jni.so)的依赖。
因此,安装程序检测到这个64位共享库,并决定该应用程序是64位感知/安全的。
https://stackoverflow.com/questions/35038062
复制相似问题