链接Android中包含的库项目中的本机SO文件

时间:2014-12-31 10:16:47

标签: android android-ndk shared-libraries

我正在开发一个项目,它依赖于另一个图书馆项目。库项目包含java文件和本机SO文件。

从Android项目java源访问JAVA源文件(API)没有任何问题。但是,我的本机代码依赖于包含在android的项目中的本机SO文件。

Library Project         Android Project
---------------         ---------------
src/Java files    <--   Java files
libs/.so files    <--   libs/.so files

.so文件是包含的库项目的一部分。我当前的Android项目本机代码如何尝试使用所包含的库项目的.so文件。目前我正在将未定义引用的错误链接到属于library / libs / .so文件的所有函数。

如果有人遇到/解决了类似的问题,请告诉我。

1 个答案:

答案 0 :(得分:0)

您可能已将两个项目导入Eclipse。但ndk-build对Eclipse一无所知。如果库附带了自己的 .mk 文件来定义PREBUILT_SHARED_LIBRARY,那么它会更好。其中一个例子是OpenCV,其中包含 sdk / native / jni / OpenCV.mk 文件。

但您只需将 .so 文件的路径添加到 Android.mk ,例如将以下行放在文件的末尾:

include $(CLEAR_VARS)
LOCAL_MODULE:=LibraryProjectSO
LOCAL_SRC_FILES:=/LibraryProject/libs/library.so
include $(PREBUILT_SHARED_LIBRARY)

现在您可以将 LibraryProjectSO 添加到 LOCAL_SHARED_LIBRARIES 列表中。