android - 使用android ndk编译ffmpeg时如何保持兼容性

标签 android ffmpeg android-ndk libm

我已经成功地将 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/

相关文章:

android - Gson 生成的 apk 和 Debug模式的不同行为

android - Recyclerview 在调用 notifydatasetchanged 后滚动到顶部

ffmpeg - 如何应用多个裁剪模糊?

ffmpeg - 如何处理 "Buffer queue overflow, dropping."(ffmpeg)

android - 如果我导出 LD_LIBRARY_PATH,为什么 Android NDK 应用程序会崩溃

android - 弹出窗口不显示

android - drawable 中的 xml 文件,可用于所有分辨率

ffmpeg - 将多个ffmpeg命令转换为一行(刻录字幕和水印)

android - CLANG/GCC C 解析器将静态指针识别为函数

android-ndk - 如何从 native android 可执行文件获取对 JVM 的引用?