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

Android NDK: build after added a new library module directly under jni/ folder

本文关键字:一个 构建 模块 jni NDK 文件夹 添加 Android      更新时间:2023-10-16

在我的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命令进行构建。但是新库根本没有构建。这是因为我需要在jni/文件夹下的Android.mk中声明new-lib模块吗?如果是,如何申报?

问题2:当我加载新的lib时(假设模块名称为"newlib"),我应该使用吗

System.loadLibrary("new-lib/newlib");

或者只是

System.loadLibrary("newlib");

首先,您不运行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");

无需指定路径。