含有多个第三方库,如何加载进来呢,这样可以做到:
JNI中如何一个cpp中的函数调用已经定义的.a库中的函数:
编写android.mk如下:
- include $(CLEAR_VARS)
- LOCAL_MODULE := libA
- LOCAL_SRC_FILES := libA.a
- include $(PREBUILT_STATIC_LIBRARY)
- include $(CLEAR_VARS)
- LOCAL_MODULE := libB
- LOCAL_SRC_FILES := libB.a
- include $(PREBUILT_STATIC_LIBRARY)
- include $(CLEAR_VARS)
- LOCAL_MODULE := libC
- LOCAL_SRC_FILES := libC.a
- include $(PREBUILT_STATIC_LIBRARY)
- include $(CLEAR_VARS)
- LOCAL_MODULE := Test
- LOCAL_SRC_FILES := Test.c
- LOCAL_STATIC_LIBRARIES := libA libB libC
- LOCAL_LDLIBS := -llog
- include $(BUILD_SHARED_LIBRARY)
完整的sampleJNI中mk文件:
LOCAL_PATH:= $(call my-dir)
# first lib, which will be built statically
include $(CLEAR_VARS)
LOCAL_MODULE := libtwolib-first
LOCAL_SRC_FILES := first.c
include $(BUILD_STATIC_LIBRARY)
# second lib, which will depend on and include the first one
include $(CLEAR_VARS)
LOCAL_MODULE := libtwolib-second
LOCAL_SRC_FILES := second.c
LOCAL_STATIC_LIBRARIES := libtwolib-first
include $(BUILD_SHARED_LIBRARY)
变量解释:
# 提供当前文件的路径,必须定义它在你的 Android.mk 文件的开始处
LOCAL_PATH := $(call my-dir)
# include $(CLEAR_VARS)
块名字必须是唯一的,并且不能包含任何的空格。
LOCAL_MODULE:= 模块名字
# 注意:不列出头文件和包含文件在这里,因为生成系统将自动地为你估算信赖。
LOCAL_SRC_FILES := 多个源代码文件(*.c)用空格分隔
# 一个可选的路径列表,做为 include 搜索路径之一。
LOCAL_C_INCLUDES := $(LOCAL_PATH)
#静态库和动态库
#include $(BUILD_SHARED_LIBRARY)
include $(BUILD_STATIC_LIBRARY)