- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个以原生 C 为核心处理的 Android 应用程序。我使用 NDKr10 从 native 代码构建库并取得成功。但是当我尝试加载库时,会显示错误:
无法加载库 soinfo_relocate(linker.cpp:975):无法找到“libvlfeat.so”引用的符号“log2f”...
我发现一些资源说这个错误是由 gcc 编译器和 Android 目标版本引起的,但我不确定。(我的目标 SDK 是 21)。
更新:我的应用在 api 21 设备上运行良好,但较低版本显示错误。
有人知道这个问题吗?请给我一个解决方案来解决这个问题。
谢谢。
最佳答案
您必须按照解决它们之间依赖关系的顺序加载 .so 库。也就是说,您必须对加载顺序进行硬编码。
关于Android.mk的一些知识可以找here , here和 here . (但如果您的项目编译成功,您的 Android.mk 可能会正常工作。)
有一个陷阱,libs/armeabi
和 libs/armeabi-v7a
中的 .so 库没有合并。也就是说,如果您仅在 armeabi
版本中有一些预编译库,则为 armeabi-v7a
编译库是没有用的(因为预编译的 armeabi
库将找不到)。
关于android - 无法加载库 soinfo_relocate(linker.cpp :975): cannot locate symbol "log2f" referenced by "libvlfeat.so",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32327268/
我正在开发一个以原生 C 为核心处理的 Android 应用程序。我使用 NDKr10 从 native 代码构建库并取得成功。但是当我尝试加载库时,会显示错误: 无法加载库 soinfo_reloc
我是一名优秀的程序员,十分优秀!