如何从应用程序项目外部使用 NDK 构建系统编译本机库?

How to compile a native library using NDK build system from outside an app project?

我正在尝试在任何项目之外使用 ndk 工具编译本机库。 我在终端使用以下内容:

ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk APP_PLATFORM=android-9  V=1

我在 Android.mk 的同一目录中还有一个 Application.mk

APP_BUILD_SCRIPT := $(call my-dir)/Android.mk
NDK_PROJECT_PATH := $(call my-dir)
APP_PLATFORM := android-9
APP_ABI := armeabi-v7a

我想使用而不是从命令行传递这些标志。不过,构建系统忽略了我的 Application.mk。我究竟做错了什么?否则可能无法实现我正在尝试做的事情(从应用程序项目外部编译库)。[​​=12=]

可以从应用程序项目外部编译库。

您刚刚错过了 NDK_APPLICATION_MK 到 Application.mk 文件的设置。

ndk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=Application.mk APP_BUILD_SCRIPT=Android.mk

一个更简单的方法是将 make 文件(Android.mk、Application.mk)放在构建系统希望找到的名为 jni/ 的文件夹中。您只需在项目根文件夹上调用 ndk-build 来构建您的库。