鏈接我已經建立了FFmpeg的Android和想使用它在應用程序中,像這樣:本地庫.so.XY沒有在運行時
System.loadLibrary("avutil");
System.loadLibrary("swscale");
System.loadLibrary("avcodec");
System.loadLibrary("avformat");
生成的輸出是lib*.so
,lib*.so.MAJOR
和lib*.so.MAJOR.MINOR.OTHER
文件。共享對象內部有像lib*.so.MAJOR
這樣的引用,例如libswscale.so.2
需要libavutil.so.52
。
現在,如果我把*.so
文件在項目的libs
文件夾(更確切地說libs/armeabi-v7a
),我當然得
01-25 12:06:40.270: E/AndroidRuntime(2905): java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1936]: 107 could not load needed library 'libavutil.so.52' for 'libswscale.so' (load_library[1091]: Library 'libavutil.so.52' not found)
但是,如果不是我把*.so.MAJOR
文件中libs
文件夾來解決連接異常,從Eclipse運行應用程序時出現同樣的錯誤。而且我注意到如果我創建APK,文件甚至不會被導出! 那麼,我該如何告知Eclipse將*.so.MAJOR
文件打包爲庫?或者,我該如何編譯共享對象,以便通過*.so
而不是*.so.MAJOR
來引用對方?
編輯:看來沒有辦法打包*.so.XYZ
文件automatically。