2014-02-10 104 views
0

我不知道如何在我的項目中使用.so文件。所以我下載了ffmpeg.so文件,現在我需要將它添加到我的解決方案中,以便我可以在設備上轉換視頻格式,但我不知道如何。我試圖在互聯網上找到關於如何添加此文件的教程,但似乎沒有任何工作適合我。將.so文件添加到android解決方案

我是否還需要Android NDK來編譯我的C代碼,因爲我有.so文件。

任何好的教程如何將這個庫添加到我的解決方案?

+0

這是否實現你想要做的事情? [NDK-如何使用的-A-產生那麼庫功能於另一個項目](http://stackoverflow.com/questions/5669220/ndk-how-to-use-a-generated-so-另一個項目中的庫) – bornruffians

+0

如果庫不提供Java API,則需要使用NDK創建它。 在android應用程序中添加.so文件很簡單,只需將其添加到/ libs文件夾並使用命令System.loadLibrary(ffmpeg.so)在運行時加載它; –

+0

加載System.loadLibrary(「ffmpeg.so」);它給我這個錯誤 無法從加載器加載ffmpeg.so dalvik.system.PathClassLoader [DexPathList [[zip文件「/data/app/com.example.untitled-1.apk"],nativeLibraryDirectories=[/data /app-lib/com.example.untitled-1,/ vendor/lib,/ system/lib]]:findLibrary返回null – user3292775

回答

0

將名爲libffmpeg.so的文件放入libs/armeabi項目的子目錄中。如果您沒有自己的C/C++源,則不需要NDK。

有時發生的錯誤是Android名稱期望不符合。名稱必須以lib開頭並以.so結尾。

+0

nope nothing nothing – user3292775

+0

請提供詳細信息。你確定你下載的庫是爲Android開發的,還是爲** armeabi **開發的?看看你已經建立的APK文件(這是一個擴展名更改的ZIP文件)。你看到ffmpeg庫包裝在裏面嗎?安裝APK時,系統日誌是否顯示該庫已解壓到'/ data/app-lib/com.example.untitled-1'? –

+0

我設法讓它加載。錯誤是當給圖書館的路徑時,我給libs/libffmpeg.so。 libs目錄不存在,而是需要寫'lib/libffmpeg.so' 'System.load(this.getBaseContext()。getApplicationInfo()。dataDir +「/lib/libffmpeg.so」);' – user3292775

相關問題