【问题标题】:How to solve the shared library import issue on Android?如何解决 Android 上的共享库导入问题?
【发布时间】:2015-11-12 07:21:33
【问题描述】:

我有一些共享库,可能是libaaa.solibbbb.solibccc.so

  1. libaaa.so 仅在 armeabi ARCH 上编译
  2. libbbb.so 编译于 armeabiarmeabi-v7a
  3. libccc.so 在两个 ARCH 上编译(x86arm64mips ...)

目前,我必须将libaaa.so 复制到armeabi-v7aarm64-v8a ... 文件夹中,否则会产生现金。

如何避免多余的副本?

【问题讨论】:

  • 参考ph0b.com/android-abis-and-so-files。从该页面“在处理 .so 文件时要遵循一个非常简单但不为人知的重要规则。如果可能,您应该提供针对每个 ABI 优化的库,但要么全部投入,要么什么都没有:你不能混合。你有提供您在每个 ABI 文件夹中使用的全套库。”因此,您似乎需要将您的 so 文件放在不同架构的所有文件夹中。

标签: android android-ndk shared-libraries


【解决方案1】:

使用System.load() 代替System.loadLibrary()

已在here讨论过差异。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-08
    相关资源
    最近更新 更多