-2
我有一個問題,的Android NDK鏈接共享庫不滿意的鏈接錯誤
下面是Android.mk
LOCAL_PATH := $(call my-dir)
INITIAL_PATH := $(LOCAL_PATH)
include $(CLEAR_VARS)
LOCAL_MODULE := ffmpegbuilt
LOCAL_SRC_FILES := libffmpeg.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/
include $(PREBUILT_SHARED_LIBRARY)
LOCAL_PATH := $(INITIAL_PATH)
LOCAL_MODULE := main_module
LOCAL_ARM_MODE := arm # remove this if you want thumb mode
LOCAL_SRC_FILES := main.c
LOCAL_LDLIBS := -llog
LOCAL_SHARED_LIBRARIES := ffmpegbuilt
include $(BUILD_SHARED_LIBRARY)
它創建兩個shared_libraries預期。我看到libs/armeabi
文件夾 內這兩個庫當我運行該應用程序時,會出現不滿意的鏈接錯誤作爲
01-06 20:21:38.281: E/AndroidRuntime(435): FATAL EXCEPTION: main
01-06 20:21:38.281: E/AndroidRuntime(435): java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1962]: 32 could not load needed library 'libffmpeg.so' for 'libmain_module.so' (load_library[1104]: Library 'libffmpeg.so' not found)
01-06 20:21:38.281: E/AndroidRuntime(435): at java.lang.Runtime.loadLibrary(Runtime.java:434)
01-06 20:21:38.281: E/AndroidRuntime(435): at java.lang.System.loadLibrary(System.java:554)
可能是什麼問題,也雖然我定義LOCAL_MODULE := ffmpegbuilt
,爲什麼預建庫的模塊名稱沒有改變?
謝謝亞歷克斯,對於第二個問題! – nmxprime
我試過你的建議,但仍然是相同的情況! – nmxprime
感謝亞歷克斯,它的工作,實際上加載庫的順序是重要的!我首先嚐試加載main_module然後加載ffmpeg,但正如你所說,應該首先添加依賴!我知道了 – nmxprime