我正在尝试将 libFLAC 移植到 android,但遇到了以下问题。
我相信我已经正确配置了 android 工具链,并且可以编译一个 .so 文件。
但是,我从该过程中获得了三个 .so 文件:
libFLAC.so, libFLAC.so.8 libFLAC.so.8.3.0
如果我将 libFLAC.so 带入我的 android 版本,我最终会失败:
java.lang.UnsatisfiedLinkError: dlopen failed: could not load library "libFLAC.so.8" needed by "libLibFlacWrapper.so"; caused by library "libFLAC.so.8" not found
E/AndroidRuntime(26684):
据我了解,这与能够共存的库版本有关,这是一件很正常的事情。问题是android不支持这种命名约定,有证据表明:
https://code.google.com/p/android/issues/detail?id=64397
本质上,包管理器无法处理扩展的命名约定。
将这些文件捆绑在 jniLibs 目录或其他位置似乎不能解决问题。
我将如何解决这个问题?我的编译错了吗?或者有没有办法重命名这些,所以它们不是版本号?