在我的Android NDK项目中,我过去只有一个库模块:
jni/
Android.mk
... (more source files)
然后,我需要添加另一个新的库模块,它与现有的库模块没有任何关系。我的意思是他们是独立的。我直接在jni/
文件夹下添加了新库。
jni/
Android.mk
... (more source files)
new-lib/
Android.mk
... (more source files)
问题1:
我在我的Android项目下运行ndk-build
命令来构建。但 new-lib 根本没有构建。这是因为我需要在 jni / 文件夹下的 Android.mk 中声明new-lib
模块吗?如果是这样,如何申报?
问题2:当我加载new-lib时(假设模块名称为" newlib"),我应该使用
System.loadLibrary("new-lib/newlib");
或只是
System.loadLibrary("newlib");
?
答案 0 :(得分:2)
首先,您没有运行android-ndk
命令,而是运行ndk-build
命令。
问题1:
您可以告诉您的顶级Android.mk
,即$ PROJECT / jni / Android.mk,以包含位于不同位置/子目录中的另一个Android.mk
。
如果您在子目录中定义了任何Android.mk
个文件,则必须在顶级Android.mk
中明确包含这些文件。
include $(call all-subdir-makefiles)
只需将其添加到顶级Android.mk
文件中即可。这将包括当前文件路径的子目录中的所有Android.mk
个文件。
问题2:
use System.loadLibrary("newlib");
无需指定路径。