首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在64位安卓系统上加载32位JNI库时的UnsatisfiedLinkError (在LG Flex2上)

在64位安卓系统上加载32位JNI库时的UnsatisfiedLinkError (在LG Flex2上)
EN

Stack Overflow用户
提问于 2016-01-27 20:58:07
回答 1查看 279关注 0票数 0

我已经编写了一个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)

  • 本机库是使用"LOCAL_MULTILIB := 32"

构建的

知道为什么Android坚持在64位模式下运行这个应用程序吗?据我所知,Android应该会在安装过程中仅遇到32位本机共享库时自动检测遗留的32位应用程序。

先谢谢你,克莱门斯

代码语言:javascript
复制
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位模式下执行。

EN

回答 1

Stack Overflow用户

发布于 2016-01-28 18:07:33

这个问题是一个为许多不同架构拉入本机库(realm,librealm-jni.so)的依赖。

因此,安装程序检测到这个64位共享库,并决定该应用程序是64位感知/安全的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35038062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档