【问题标题】:Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: Android.mkAndroid NDK:您的 APP_BUILD_SCRIPT 指向一个未知文件:Android.mk
【发布时间】:2017-01-18 01:19:51
【问题描述】:

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

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

Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := main.out
LOCAL_SRC_FILES := main.cpp
include $(BUILD_EXECUTABLE)

应用程序.mk

APP_ABI := x86
APP_PLATFORM := android-25
APP_STL := stlport_static
APP_BUILD_SCRIPT := Android.mk

main.cpp

#include <iostream.h>

main()
{
    std::cout << "Hello World!";
    return 0;
}

这是我的文件夹的结构

.
└── jni
    ├── Android.mk
    ├── Application.mk
    └── main.cpp

【问题讨论】:

标签: android android-ndk android.mk


【解决方案1】:

在这种情况下,设置 APP_BUILD_SCRIPT 应该是不必要的,因为您似乎使用的是默认名称和位置。

但是假设您的Android.mk 被命名为foo.mkAPP_BUILD_SCRIPT 的问题在于“构建系统总是将非绝对路径解释为相对于 NDK 的顶级目录”

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

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

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

【讨论】:

  • 添加到什么文件:APP_BUILD_SCRIPT := $(MY_APP_DIR)/foo.mk?
  • @jww: Application.mk
  • “构建系统总是将非绝对路径解释为相对于 NDK 的顶级目录” – 我认为这是文档中的错误。实际上,APP_BUILD_SCRIPT 是相对于 $PWD 解释的(在 Windows 中,%CD%)。的确,我们经常从jni上面的目录运行ndk-build,但是没有这样的rule。例如。如果它们只运行 ndk-build -C jni,那么一切都适用于 TS。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
  • 2011-09-23
  • 1970-01-01
相关资源
最近更新 更多