Android NDK:在jni /文件夹下直接添加新的库模块后构建

时间:2014-04-24 09:58:39

标签: android c++ android-ndk makefile multiple-makefiles

在我的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");

1 个答案:

答案 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");

无需指定路径。