2

私は Android 用の FFmpeg を作成しましたが、次のようなアプリケーションで使用したいと考えています。

System.loadLibrary("avutil");
System.loadLibrary("swscale");
System.loadLibrary("avcodec");
System.loadLibrary("avformat");

ビルド出力はlib*.solib*.so.MAJORおよびlib*.so.MAJOR.MINOR.OTHERファイルです。共有オブジェクト内には、lib*.so.MAJORrequires などのlibswscale.so.2参照がありlibavutil.so.52ます。

*.soファイルをプロジェクトのフォルダーに入れるとlibs(より正確にはlibs/armeabi-v7a)、もちろん取得します

01-25 12:06:40.270: E/AndroidRuntime(2905): java.lang.UnsatisfiedLinkError: ライブラリをロードできません: link_image [1936]: 107 は、'libswscale.so' に必要なライブラリ 'libavutil.so.52' をロードできませんでした(load_library[1091]: ライブラリ 'libavutil.so.52' が見つかりません)

ただし、代わりに*.so.MAJORファイルをlibsフォルダーに入れてリンク例外を解決すると、Eclipse からアプリを実行すると同じエラーが発生します。そして、APK を作成してもファイルがエクスポートされないことに気付きました! では、ファイルをライブラリーとしてパッケージ化するように Eclipse に指示するにはどうすればよいでしょうか? *.so.MAJOR*.soまたは、代わりに、共有オブジェクトを相互に参照するようにコンパイルするにはどうすればよい*.so.MAJORですか?

*.so.XYZ編集:ファイルを自動的にパッケージ化する方法はないようです。

4

2 に答える 2