Ваш APP_BUILD_SCRIPT указывает на неизвестный файл с помощью Android ndk-build

При попытке скомпилировать проект Android NDK я получаю следующую ошибку:

ndk-build 
Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: /home/lambergar/work/APIExample/jni/Android.mk    
/home/lambergar/android/ndk/android-ndk-r5c/build/core/add-application.mk:116: *** Android NDK: Aborting...    .  Stop.

Странно то, что "неизвестный файл" (Android.mk) существует по пути, указанному как недопустимый.

Ответы

Ответ 1

Я решил проблему, добавив новую сборку в проект и вуаля, она работает... Не знаю, в чем была проблема с сборкой CLI.

Ответ 2

Такая же проблема (в Windows 7), но причина другая.

После поиска в параметрах Environment я нашел злую вещь с именем NDK_PROJECT_PATH, значение которой является недопустимым.

Удалено, и все работает снова;)

Ответ 3

В моем случае проблема заключалась в пробелах в пути к проекту. В этом случае измените папки пути проекта и снова импортируйте проект.

Ответ 4

У меня была такая же проблема. Я исправил его, создав Application.mk в $NDK/apps/ndktestapp со следующим содержимым:

APP_PROJECT_PATH := /cygdrive/c/workspace/MyApp

а затем вызов

make APP=ndktestapp

из NDK-Root. Надеюсь, что это поможет.

Ответ 5

Просто увидел эту проблему сегодня. В моем случае актуальной проблемой было пространство внутри пути к проекту.

(да, ndk-build не будет компилировать ваш проект, если у вас есть пробелы внутри имени папки)

Ответ 6

Просто потратил час или два, пытаясь понять это. Многие, многие люди имели эту проблему. Но, как я выяснил, у меня фактически не было имени файла Android.mk, оно называлось Andriod.mk, и этого было достаточно, чтобы доставить мне много хлопот. Извините за мою оригинальную напыщенную речь, но это была вся проблема в конце. Я предлагаю, если у вас есть эта проблема, вы должны проверить все, пока не найдете что-то не так.

Это исправило меня. Спасибо, ребята, вы все равно поставили меня на правильный путь.

Ответ 7

Вам нужно установить переменную env NDK_PROJECT_PATH в корень проекта, который вы строите. Корень вашего проекта NDK обычно содержит каталог ./jni.

export NDK_PROJECT_PATH={root_of_project}

Если ваш код JNI находится в библиотеке, установите NDK_PROJECT_PATH в проект библиотеки.

Ответ 8

как то же, что @phavens, я думаю, что только неправильно со словом Android.mk и android.mk файл, просто потраченный на 5 минут.. hehe

Ответ 9

Не делайте никаких пробелов в каталоге проектов. Если ошибки повторяются, отредактируйте build.gradle(Module: app) под блоком buildTypes и добавьте строку, как показано ниже:

 buildTypes {
    release {
       ......................
    }
}
sourceSets { main { jni.srcDirs = ['src/main/jni/','src/main/jniLibs/'] } }
externalNativeBuild {
    ndkBuild {
        path 'build/intermediates/ndk/debug/Android.mk'
    }
}

Ответ 10

Я только что установил Android-NDK и попробовал "ndk-build". У меня была такая же ошибка. Вот как я победил.

bash

export NDK_PROJECT_PATH={root_of_android_ndk}/samples/hello-jni

./ndk-build

Это сработало.

Ответ 11

Внутри файла Android.mk вы указываете путь, в котором была создана папка jni... в твоем случае ARTOOLKIT_DIR: =/home/lambergar/work/APIExample/

Ответ 12

в моем случае в имени папки проекта был пробел, который был удален, а затем снова импортирован в Android Studio, и это решило проблему

Ответ 13

Детали проблемы:

Android NDK: ваш APP_BUILD_SCRIPT указывает на неизвестный файл: /jni/Android.mk...: *** Android NDK: прерывание.... Стоп. Обычно это не путь вашего проекта, поэтому причина этой ошибки в том, что ndk не может найти правильный путь к файлу Android.mk. решение:

Добавьте NDK_PROJECT_PATH к "./" в переменной среды, цель состоит в том, чтобы сообщить NDK, что jni, который в настоящее время должен быть скомпилирован, находится в каталоге, где расположен проект.

Ответ 14

Для меня удалили каталоги .gradle и app/.externalNativeBuild, и это сработало.

Ответ 15

Gradle Экспериментальный plugein в Android Studio добавляет поддержку собственной сборки проекта.