Android NDK: ваш APP_BUILD_SCRIPT указывает на неизвестный файл: Android.mk

Я знаю, что этот вопрос задавался раньше, но я попробовал все существующие решения, и ни одно из них не решило проблему.

Я пытаюсь создать простое родное приложение 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)

Application.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

person DigitalPerson    schedule 18.01.2017    source источник
comment
Возможный дубликат Android NDK: ваш APP_BUILD_SCRIPT указывает на неизвестный файл   -  person jww    schedule 26.08.2018


Ответы (1)


В этом случае установка APP_BUILD_SCRIPT не обязательна, поскольку, похоже, вы используете имя и местоположение по умолчанию.

Но допустим, ваш Android.mk был назван foo.mk. Суть APP_BUILD_SCRIPT в том, что «Система сборки всегда интерпретирует неабсолютный путь как относительный к каталогу верхнего уровня NDK».

Таким образом, вы, вероятно, захотите указать абсолютный путь, но желательно не полностью закодированный, поскольку это усложнит ситуацию, если вы переместите что-то на своем компьютере или попытаетесь переместить проект на другой компьютер.

Решить эту проблему можно следующим образом:

MY_APP_DIR := $(call my-dir)
APP_BUILD_SCRIPT := $(MY_APP_DIR)/foo.mk
person Michael    schedule 18.01.2017
comment
К какому файлу это добавлено: APP_BUILD_SCRIPT := $(MY_APP_DIR)/foo.mk? - person jww; 26.08.2018
comment
@jww: Application.mk - person Michael; 26.08.2018
comment
Система сборки всегда интерпретирует неабсолютный путь относительно каталога верхнего уровня NDK - я считаю, что это ошибка в документе. Фактически, APP_BUILD_SCRIPT интерпретируется относительно $ PWD (в Windows, % CD%). Это правда, что часто мы запускаем ndk-build из каталога выше jni, но такого правила нет. Например. все было бы хорошо для TS, если бы они запускали только ndk-build -C jni. - person Alex Cohn; 26.08.2018