大家:我是ffmpeg的新手.最近我正在研究将ffmpeg移植到android设备的项目.一开始,我按照互联网上的一些指南以非常正常的方式将ffmpeg编译为共享库(.so文件),将它们加载到我的Android应用程序中.它完美地运作.
现在我希望ffmpeg使用libstagefright来实现硬件解码.问题是,我可以编译.so库,但是当我启动我的应用并加载那些.so库时,总会有一个java.lang.UnsatisfiedLinkError:无法加载库:reloc_library [1314]:114找不到'_ZN7android11MediaBufferC1Ej'
我在那里呆了几天.有没有人遇到过类似的问题?如果有人能给我一些关于这个错误的提示,那就太好了.
我的步骤:1.将ffmpeg-2.1.4源代码编译为.so共享库.我使用build_libstagefright脚本执行此操作,并根据Internet的某些指南进行一些修改.
#!/bin/bash
#export NDK=/home/mingzhang/android/android-ndk-r9c
export NDK=/home/mingzhang/android/android-ndk-r7
if [ "$NDK" = "" ]; then
echo NDK variable not set, assuming ${HOME}/android-ndk
export NDK=${HOME}/android-ndk
fi
echo "Fetching Android system headers"
git clone --depth=1 --branch gingerbread-release git://github.com/CyanogenMod/android_frameworks_base.git ../android-source/frameworks/base
git clone --depth=1 --branch gingerbread-release git://github.com/CyanogenMod/android_frameworks_av.git ../android-source/frameworks/av
git clone --depth=1 --branch gingerbread-release git://github.com/CyanogenMod/android_frameworks_native.git ../android-source/frameworks/native
git clone --depth=1 --branch gingerbread-release git://github.com/CyanogenMod/android_hardware_libhardware.git ../android-source/hardware/libhardware
git clone --depth=1 --branch gingerbread-release git://github.com/CyanogenMod/android_system_core.git ../android-source/system/core
echo "Fetching Android libraries for linking"
# Libraries from any froyo/gingerbread device/emulator should …Run Code Online (Sandbox Code Playgroud)