在设备上访问版本化的jni so-file的正确方法

时间:2018-10-30 12:51:37

标签: android java-native-interface shared-libraries native

我在Linux系统上为arm64交叉编译了许多本机库。所有文件都有版本,即其中带有版本号的SONAME。

我复制了文件并将其重命名为libqdbm.so而不是libqdbm.so.14。我也尝试仅复制此名称的链接。

链接正在按预期方式工作,libqdbm.so文件已添加到APK文件中。但是,当我想在设备上运行它时,它将始终搜索libqdbm.so.14文件,但找不到它。

当然,我可以尝试使用patchelf对其进行修补,但是我认为这不是最好的方法。另外,我不想更改生成未版本化文件的生成脚本(有很多库,而且我对理解这些脚本确实很不好)。

如果有人可以向我解释这应该如何工作真是太好了?有什么我可以做的吗?我唯一想到的另一件事是更改apk的构建过程,以便复制一个版本化的so-file,但这听起来也不是一个好的解决方案。

非常感谢您。

0 个答案:

没有答案