在 Android Studio 中链接带有版本控制的共享库

Cri*_*dan 5 android bundle shared-libraries android-studio

我正在开发一个使用外部库的 Android 应用程序(用 C++ 编写,使用 SWIG 生成的 Java 包装器)。我的问题是其中一个共享库依赖于另一个使用版本控制的共享库,例如 libicui18n.so.67。Android Studio 仅在应用程序包中复制 *.so 库,忽略不以 .so 结尾的库(这些实际上是包含 so 名称中版本的符号链接)。

我的问题是如何在名称中包含版本号的应用程序包或库中复制这些符号链接?

Cri*_*dan 0

我对这个问题的最终解决方案是只编译一个共享库,而所有其他外部依赖都是静态库。

另一种解决方案是使用 patchelf https://github.com/NixOS/patchelf 来修改共享库(通过更改 soname 和 need 字段),以便仅使用以 .so 结尾的共享库。