【发布时间】:2012-04-20 13:35:30
【问题描述】:
- 我正在构建一个混合模式的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 部分以加载本机库:
静态{
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:
包括 $(CLEAR_VARS)
LOCAL_MODULE := mylib
LOCAL_SRC_FILES := ../../../mylib/libmylib.so
包括 $(PREBUILT_SHARED_LIBRARY)
- 将 libmylib.so 替换为 libmylib.so.%some number% 会导致构建失败,并显示 [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?
【问题讨论】:
标签: android ffmpeg android-ndk