【发布时间】:2014-12-20 00:16:28
【问题描述】:
我正在尝试将 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 目录或其他位置似乎并不能解决问题。
我将如何解决这个问题?我的编译错了吗?或者有没有办法重命名这些,使它们不是版本号?
【问题讨论】:
标签: android java-native-interface android-ndk-r5