![](/img/trans.png)
[英]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.