3
- 我建立一個混合模式的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」);節選與「無法加載所需的庫‘libavutil.so.51’爲‘libavcodec.so’(圖書館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 num BER%導致構建失敗,[LOCAL_SRC_FILES應指向與「所以」結尾的文件]
銘記上述情況,我怎麼能有libavcodec的加載W/O的依賴問題嗎?
- 我可以修復libavcodec.so依賴項來指向libavutil.so而不是libavutil.so.51嗎?
- 我可以更改Android.mk,以便能夠打包libavutil.so.51(非.SO延長)嗎?那麼它會使用'System.loadLibrary'加載嗎?
任何幫助將不勝感激!
Nadav在Sophin
- 我可以修復libavcodec.so依賴項來指向libavutil.so而不是libavutil.so.51嗎?
有沒有找到一個真正的解決方案呢?由於LGPL,我處於同一個漏洞並面臨同樣的限制。 – spartygw 2013-06-06 02:32:49
好吧,我終於找到了解決方案,通過更改ffmpeg的發行版中的Makefile來生成沒有版本後綴的庫。所以我有真正的libavutil.so,libavcodec.so,libswscale.so和所有的工作在我的nexus 4! – spartygw 2013-06-06 04:21:45
嗨買,我使用最新的FFMPEG時面臨同樣的問題,你的觀點非常有用,但是我還沒有完成,由於我不知道如何改變,你能幫我指出如何改變它嗎? – Sean 2014-10-24 05:44:22