我正在开发一个项目,它依赖于另一个图书馆项目。库项目包含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文件的所有函数。
如果有人遇到/解决了类似的问题,请告诉我。
答案 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 列表中。