首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android库提供的本地库架构比主项目少

Android库提供的本地库架构比主项目少
EN

Stack Overflow用户
提问于 2016-09-17 00:08:43
回答 3查看 227关注 0票数 0

我试图将Polaris Viewer Kit软件开发工具包集成到我的项目中,但由于这个错误而卡住了:

代码语言:javascript
运行
复制
 Could not dispatch event: class com.myproject.documents.model.callback.DocumentCallback to subscribing class class com.myproject.documents.ui.DocumentListFragment
     java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/data/app/com.myproject-2/base.apk"],nativeLibraryDirectories=[/data/app/com.myproject-2/lib/arm, /system/fake-libs, /data/app/com.myproject-2/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]] couldn't find "libEX_Engine7.so"

软件开发工具包只为armeabix86架构提供本地库,但我的项目已经为armeabi-v7ax86_64提供了库。

因此,我猜测,由于项目提供了一些armeabi-v7a库,因此设备希望找到该体系结构的所有库。这是正确的吗?

有没有什么办法可以让设备在库可用时使用armeabi-v7a,在库不可用时回退到armeabi

附加信息:我正在使用Android Studio2.2 RC2,Gradle 2.14.1进行开发,并在装有Android 7 DP5的Nexus6上进行测试。

EN

回答 3

Stack Overflow用户

发布于 2016-09-17 02:51:08

有什么我可以做的,使设备在库可用时使用armeabi-v7a,当库不可用时回退到armeabi?

系统会自动执行此操作。如果设备支持armeabi,但不支持armeabi-v7a,它将使用armeabi。

问题是你的应用程序不支持armeabi-v7a,因为你正在使用的SDK不支持。不幸的是,除非你能为armeabi-v7a重建SDK,否则你只能支持armeabi。

票数 1
EN

Stack Overflow用户

发布于 2016-09-19 14:16:09

操作系统将只从最匹配的单个文件夹中获取库。

例如:如果你有

2 libraries

  • armeabi-v7a和1库的
  • armeabi

当在armeabi-v7a兼容设备上运行时,它将查找文件夹(按顺序)

  • armeabi-v7a
  • armeabi

它将立即找到文件夹(armeabi-v7a),并且只考虑该文件夹,从而找到1

更多关于abis支持和选择的信息:https://developer.android.com/ndk/guides/abis.html#am

ps。我以前遇到过一个问题,那就是我只支持armeabi平台,但是有一个依赖库确实支持所有的abi,导致在非严格的armeabi设备上发生了很多崩溃(不满意的链接错误)。

票数 1
EN

Stack Overflow用户

发布于 2016-09-17 05:28:21

除了Dan Albert的回答之外,请记住armeabi和armeabi-v7a是二进制兼容的。因此,如果SDK只提供armeabi,您实际上可以创建一个新的armeabi-v7a目录,并将armeabi文件复制到其中,它将工作得很好。如果SDK是为armeabi-v7a编译的,那么它的效率可能会更低。(不过,您不能对arm64-v8a或x86_64执行相同的操作,因为它们与armeabi(-v7a)和x86是不同的架构。)

换句话说,如果你自己的应用程序中的原生代码对性能不是很敏感(实际上,如果它不使用大量的浮点数),你不会因为省略armeabi-v7a版本而只是发布armeabi而损失太多性能,而且你还可以节省一些二进制代码的大小。

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

https://stackoverflow.com/questions/39535904

复制
相关文章

相似问题

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