[英]ffmpeg build for android.error:./obj/local/arm64-v8a/libavcodec.so: error adding symbols: File in wrong format
[英]Error 1 libavcodec.so File format not recognized Android GL Live Wallpaper
我正在嘗試制作一個動態壁紙為Android播放位於android-asset設備上的.mp4視頻(我正在使用的示例,它實際上在運行時將文件復制到SD卡/無所謂)
我找到了這個例子並且使用這篇文章,我能夠通過NDK設置我的eclipse並構建項目。 使用NDK插件在eclipse中構建時,我在問題窗口中出現此錯誤:
Description Resource Path Location Type
make: *** [libs/armeabi/libavcodec.so] Error 1 GLWallpaperVideoDemo-master C/C++ Problem
make: *** Deleting file `libs/armeabi/libavcodec.so' GLWallpaperVideoDemo-master C/C++ Problem
如果我嘗試從命令提示符運行ndk-build
,我會得到相同的錯誤。
我從上面的鏈接下載了項目,然后導入到eclipse中。 我將lib GLWallpaperService添加到構建路徑,並確保我的NDK已設置。 知道lib文件夾更改為libs我也嘗試將GLWallpaperService移動到libs文件夾,這沒有幫助。
該項目在沒有NDK的情況下構建得很好,但在嘗試運行壁紙時顯然是錯誤,因為沒有構建本機庫。
我該如何解決這個錯誤?
你通過git clone https://github.com/frankandrobot/GLWallpaperVideoDemo.git
獲得的軟件包是面向Linux的。 文件jni\\ffmpeg-android\\build\\ffmpeg\\armeabi\\lib\\libavcodec.so
和許多其他文件只是實際文件的符號鏈接。
為了在Windows上輕松完成所有工作,我建議轉到jni\\ffmpeg-android\\build\\ffmpeg\\armeabi\\lib
文件夾,然后運行
del *.so
copy libavcodec.so.52.99.1 libavcodec.so
copy libavcore.so.0.16.0 libavcore.so
copy libavdevice.so.52.2.2 libavdevice.so
copy libavfilter.so.1.69.0 libavfilter.so
copy libavformat.so.52.88.0 libavformat.so
copy libavutil.so.50.34.0 libavutil.so
copy libswscale.so.0.12.0 libswscale.so
問題可能是因為文件損壞了。 嘗試再次構建ffmpeg庫或找到另一個版本。 因為我在嘗試編譯項目時在eclipse中有不同的錯誤:
C:/Android/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi-strip:./ libs / armeabi / libavcodec.so: 文件格式無法識別
當我搜索此錯誤時,似乎錯誤是由於文件損壞: NDK預建的共享庫文件格式無法識別
或者庫不是Android可以使用的格式: 鏈接C ++靜態庫與android ndk時出錯(錯誤:文件格式無法識別)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.