Android NDK:你的应用程序构建脚本指向一个未知文件:Android.mk

Android NDK:你的应用程序构建脚本指向一个未知文件:Android.mk,android,android-ndk,android.mk,Android,Android Ndk,Android.mk,我知道以前有人问过这个问题,但我尝试了所有现有的解决方案,但没有一个解决了这个问题 我正在尝试创建一个简单的hello world本机应用程序(二进制而非apk),但当我尝试使用“ndk build”编译时,不断收到此错误消息 Android.mk LOCAL\u路径:=$(调用我的目录) 包括$(清除变量) 本地_模块:=main.out 本地\u SRC\u文件:=main.cpp 包括$(构建可执行文件) Application.mk APP_ABI:=x86 应用程序平台:=andro

我知道以前有人问过这个问题,但我尝试了所有现有的解决方案,但没有一个解决了这个问题

我正在尝试创建一个简单的hello world本机应用程序(二进制而非apk),但当我尝试使用“ndk build”编译时,不断收到此错误消息

Android.mk

LOCAL\u路径:=$(调用我的目录)
包括$(清除变量)
本地_模块:=main.out
本地\u SRC\u文件:=main.cpp
包括$(构建可执行文件)
Application.mk

APP_ABI:=x86
应用程序平台:=android-25
应用程序\u STL:=stlport\u静态
APP_BUILD_脚本:=Android.mk
main.cpp

#包括
main()
{

std::cout在这种情况下,设置
APP\u BUILD\u SCRIPT
应该是不必要的,因为您似乎正在使用默认名称和位置

但是让我们假设您的
Android.mk
被命名为
foo.mk
。关于
APP\u BUILD\u SCRIPT
的事情是,“构建系统总是将非绝对路径解释为相对于NDK的顶级目录”

因此,您可能希望指定一个绝对路径,但最好不要完全硬编码,因为如果您在计算机上移动对象或尝试将项目移动到其他计算机上,这将使事情变得复杂

您可以通过以下方式解决此问题:

MY_APP_DIR := $(call my-dir)
APP_BUILD_SCRIPT := $(MY_APP_DIR)/foo.mk

这是添加到哪个文件中的:
APP\u BUILD\u SCRIPT:=$(MY\u APP\u DIR)/foo.mk
?@jww:Application.mk“构建系统总是将非绝对路径解释为相对于NDK的顶级目录”-我相信这在文档中是一个错误。实际上,APP\u BUILD\u SCRIPT是相对于$PWD(在Windows中,%CD%)进行解释的。的确,我们经常从jni上面的目录运行ndk build,但没有这样的规则。例如,如果TS只运行ndk build-C jni,则所有这些都适用于TS。的可能重复