我已经成功地将 ffmpeg 编译为我的项目的静态库,android-platform 19 在 Application.xml 中指定如下:
APP_PLATFORM := android-19
我在设备 (4.4) 上测试了我的项目,它运行良好。但它会在 4.0 设备上崩溃。
所以我想将 APP_PLATFORM 更改为较低版本,例如:
APP_PLATFORM := android-17
但是ide出现这样的错误。
libavcodec/ffv1enc.c:631: error: undefined reference to 'log2'
当我将其更改为更低版本时:
APP_PLATFORM := android-8
出现更多错误:
libavcodec/ffv1enc.c:631: error: undefined reference to 'log2'
libavutil/mem.c:94: error: undefined reference to 'posix_memalign'
我知道 log2 引用由于缺少 libm 而未定义,但据我所知,Android 在构建时会自动链接到 libm。 http://mobilepearls.com/labs/native-android-api/ndk/docs/STABLE-APIS.html
那么如何在编译ffmpeg时保持兼容性,才能让我的项目在低版本设备上运行良好。
最佳答案
我已经通过低版本的ndk平台工具重新编译ffmpeg解决了这个问题。
然后在Android.mk中保持相同的版本。
这些错误不再发生。
关于android - 使用android ndk编译ffmpeg时如何保持兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33473948/