我正在開發一個具有一些本機代碼的Android應用程序。我也有一些本地的預編譯庫,應該包含在項目中。首先,我將預先構建的庫放在項目的libs/armeabi文件夾中。但問題是這些文件在構建時被刪除。許多預建庫之一是不包括在ndk構建
所以我搜索了一下,發現你必須在你的Android.mk文件中包含這些預建庫以複製到libs/armeabi文件夾。
這裏是我的Android.mk的一部分:
[...]
include $(CLEAR_VARS)
LOCAL_MODULE := libavcodec
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libavcodec.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libavdevice
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libavdevice.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libavfilter
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libavfilter.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libavformat
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libavformat.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libavutil
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libavutil.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libmetaiosdk
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libmetaiosdk.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libswscale
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libswscale.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libswresample
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libswresample.so
include $(PREBUILT_SHARED_LIBRARY)
[EOF]
的問題是: 所有這些文件都在同一個目錄和所有這些文件被複制到庫/ armeabi文件夾。除了一個文件! libswscale.so不會被複制。我不知道這裏有什麼問題。我絕對沒有文件名中的拼寫錯誤。
我錯過了什麼。也許有人有類似的問題?
在此先感謝!
你可以接受你的答案來標記這個問題已解決:) – krsteeve
只有兩天後它說。 :-) – Alex