- 我正在构建一个混合模式的Android项目,该项目使用的是原生ffmpeg
- 库是
2.1。libavutil.so -> libavutil.so.51
2.2。libavcodec.so -> libavcodec.so.54
2.3。libavformat.so -> libavformat.so.54 - 我的 Java 代码包括以下 JNI 部分来加载本机库:
static {
System.loadLibrary("avutil");
System.loadLibrary("avcodec");
System.loadLibrary("avformat");
} - 'libavcodec.so' 依赖于 'libavutil.so.51' 而不是 'libavutil.so'。
- 运行我的活动时 System.loadLibrary("avcodec"); 除了“无法为'libavcodec.so'加载所需的库'libavutil.so.51'(找不到库'libavutil.so.51')”
- 在我的 Android.mk 上,我有以下部分将本机库添加到 APK:
include $(CLEAR_VARS)
LOCAL_MODULE := mylib
LOCAL_SRC_FILES := ../../../mylib/libmylib.so
include $(PREBUILT_SHARED_LIBRARY )
- 用 libmylib.so.%some number% 替换 libmylib.so 会导致构建失败,并显示 [LOCAL_SRC_FILES 应指向以“.so”结尾的文件]
考虑到上述情况,我如何才能在没有依赖项的情况下加载 libavcodec问题 ?
- 我可以修复 libavcodec.so 依赖项以指向 libavutil.so 而不是 libavutil.so.51 吗?
- 我可以更改 Android.mk 以便能够打包 libavutil.so.51(非 .SO 扩展名)吗?然后它可以使用'System.loadLibrary'加载吗?
任何帮助将不胜感激!!!
索芬的纳达夫
- 我可以修复 libavcodec.so 依赖项以指向 libavutil.so 而不是 libavutil.so.51 吗?
问问题
628 次