我发现这篇文章几乎是我所需要的:
How to compile a static library using the Android NDK?
基本上,我的项目中有些部分从未更新,因此我试图避免在每次更新Android.mk文件时都构建它们以添加内容。
上面的答案显示了如何将一些代码内置到一个单独的静态库中,但是当我尝试在单独的Android.mk文件中预构建上述代码时,它不会自行构建。这看起来有点多余......如果我必须同时构建它们,那么制作单独的静态库有什么意义呢?
如果我将单独项目中的Android.mk更改为:
包括$(BUILD_SHARED_LIBRARY)
并将其包含在主项目中:
LOCAL_SHARED_LIBRARIES:= libMyaccessories.so
然后我得到未解析的(函数名称)引用,可能是因为它找不到共享库(在调用路径中)
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:11)
在Android.mk的文档中,查看PREBUILT_SHARED_LIBRARY
脚本说明。将.so文件放在lib
(不是libs
)目录中,并在其旁边写一个看起来像这样的Android.mk文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := Myaccessories
LOCAL_SRC_FILES := libMyaccessories.so
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../jni/include
include $(PREBUILT_SHARED_LIBRARY)