0

libFLAC を Android に移植しようとしていますが、次の問題が発生しています。

Android ツールチェーンが適切に構成されていると信じており、.so ファイルをコンパイルできます。

ただし、プロセスから 3 つの .so ファイルを取得します。

libFLAC.so、libFLAC.so.8 libFLAC.so.8.3.0

Android ビルドに libFLAC.so を導入すると、最終的に次のエラーが発生します。

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 ディレクトリまたは他の場所にバンドルしても、問題は解決しないようです。

どうすればこれを回避できますか?私のコンパイルは間違っていますか?または、これらの名前を変更してバージョン番号にならないようにする方法はありますか?

4

1 に答える 1

0

次のおかげで、なんとかこれを回避できました。

https://github.com/showlabor/libloader

少し奇妙ですが、基本的には、バージョン管理されたライブラリ (私の場合は .8、.8.3.0) が libs ディレクトリ (または jar にバンドルされている) にあり、この方法を使用してそれらをロードできることを確認してください。

于 2014-12-23T14:56:12.323 に答える