Android.mk应该在哪里?

Max*_*Ocd 9 android makefile android-ndk

在Android NDK的文档中,存在以下语句:

Android.mk文件位于项目的jni /目录的子目录中[...] http://developer.android.com/ndk/guides/android_mk.html

我可以从中解释一个Android.mk文件应该被放入[project_path]/jni/[module_name]/Android.mk,每个模块都有自己的特定Android.mk文件,因为这是它与应用程序范围Application.mk文件的区别,但是当我执行时,ndk-build我收到以下错误消息:

Android NDK:./jni
Android NDK 下没有Android.mk :如果这是故意的,请定义APP_BUILD_SCRIPT以指向
Android NDK:到有效的NDK构建脚本.

我收集从我应该建立一个单一的Android.mk靠我的档案Application.mk文件或定义APP_BUILD_SCRIPTApplication.mk指向一个单一的Android.mk文件.这与文档相矛盾,让我想知道为什么需要多个makefile时Android.mk,无论如何都会包含所有模块的定义 - 也可以放在那里Application.mk.

阅读几个NDK示例项目我发现,实际上,该Android.mk文件位于同一目录中,Application.mk并且ndk-build在它们上执行似乎有效.

缺什么?

yak*_*bom 0

我至少可以回答你的一些问题。您对文档有点混乱的看法是正确的。如果您使用单个本机模块,实际上 Application.mk 可能看起来多余 - 但是,有一些东西只能由 Application.mk 设置(您可以在这里查看:Application.mk)。Application.mk 用于适用于所有模块的设置,而 Android.mk 用于特定模块设置。事实上,通常简单的项目都有一个 Android.mk,并且它与 Application.mk 位于同一文件夹中。

您可以定义将它们放在哪里,这还取决于您构建代码的方式 - 例如,如果您使用“ndk-build”和命令行命令构建 ndk 的任务,则将文件夹路径作为参数传递。通常,根据我的经验,它们位于 jni 文件夹下。