在Android NDK项目中使用我自己的预建共享库

bit*_*ise 14 c++ android build android-ndk

我发现这篇文章几乎是我需要的:

如何使用Android NDK编译静态库?

基本上,我的项目中有一些部分从未更新,所以我试图避免在每次更新Android.mk文件时添加它们.

上面的答案显示了如何将一些代码内置到一个单独的静态库中,但是当我尝试在单独的Android.mk文件中预构建上述代码时,它不会自行构建.这看起来有点多余......如果我必须同时构建它们,那么制作单独的静态库有什么意义呢?

如果我在单独的项目中更改Android.mk,请阅读:

包含$(BUILD_SHARED_LIBRARY)

并在主项目中包含它:

LOCAL_SHARED_LIBRARIES:= libMyaccessories.so

然后我得到未解析的(函数名称)引用,可能是因为它找不到共享库(在调用路径中)

任何人都可以帮我解决这个问题吗?

ogn*_*ian 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)
Run Code Online (Sandbox Code Playgroud)