Ответ 1
Я решил проблему, добавив новую сборку в проект и вуаля, она работает... Не знаю, в чем была проблема с сборкой CLI.
При попытке скомпилировать проект 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) существует по пути, указанному как недопустимый.
Я решил проблему, добавив новую сборку в проект и вуаля, она работает... Не знаю, в чем была проблема с сборкой CLI.
Такая же проблема (в Windows 7), но причина другая.
После поиска в параметрах Environment я нашел злую вещь с именем NDK_PROJECT_PATH, значение которой является недопустимым.
Удалено, и все работает снова;)
В моем случае проблема заключалась в пробелах в пути к проекту. В этом случае измените папки пути проекта и снова импортируйте проект.
У меня была такая же проблема. Я исправил его, создав Application.mk в $NDK/apps/ndktestapp со следующим содержимым:
APP_PROJECT_PATH := /cygdrive/c/workspace/MyApp
а затем вызов
make APP=ndktestapp
из NDK-Root. Надеюсь, что это поможет.
Просто увидел эту проблему сегодня. В моем случае актуальной проблемой было пространство внутри пути к проекту.
(да, ndk-build
не будет компилировать ваш проект, если у вас есть пробелы внутри имени папки)
Просто потратил час или два, пытаясь понять это. Многие, многие люди имели эту проблему. Но, как я выяснил, у меня фактически не было имени файла Android.mk, оно называлось Andriod.mk, и этого было достаточно, чтобы доставить мне много хлопот. Извините за мою оригинальную напыщенную речь, но это была вся проблема в конце. Я предлагаю, если у вас есть эта проблема, вы должны проверить все, пока не найдете что-то не так.
Это исправило меня. Спасибо, ребята, вы все равно поставили меня на правильный путь.
Вам нужно установить переменную env NDK_PROJECT_PATH
в корень проекта, который вы строите. Корень вашего проекта NDK обычно содержит каталог ./jni
.
export NDK_PROJECT_PATH={root_of_project}
Если ваш код JNI находится в библиотеке, установите NDK_PROJECT_PATH
в проект библиотеки.
как то же, что @phavens, я думаю, что только неправильно со словом Android.mk и android.mk файл, просто потраченный на 5 минут.. hehe
Не делайте никаких пробелов в каталоге проектов. Если ошибки повторяются, отредактируйте 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'
}
}
Я только что установил Android-NDK и попробовал "ndk-build". У меня была такая же ошибка. Вот как я победил.
bash
export NDK_PROJECT_PATH={root_of_android_ndk}/samples/hello-jni
./ndk-build
Это сработало.
Внутри файла Android.mk вы указываете путь, в котором была создана папка jni... в твоем случае ARTOOLKIT_DIR: =/home/lambergar/work/APIExample/
в моем случае в имени папки проекта был пробел, который был удален, а затем снова импортирован в Android Studio, и это решило проблему
Детали проблемы:
Android NDK: ваш APP_BUILD_SCRIPT указывает на неизвестный файл: /jni/Android.mk...: *** Android NDK: прерывание.... Стоп. Обычно это не путь вашего проекта, поэтому причина этой ошибки в том, что ndk не может найти правильный путь к файлу Android.mk. решение:
Добавьте NDK_PROJECT_PATH к "./" в переменной среды, цель состоит в том, чтобы сообщить NDK, что jni, который в настоящее время должен быть скомпилирован, находится в каталоге, где расположен проект.
Для меня удалили каталоги .gradle
и app/.externalNativeBuild
, и это сработало.
Gradle Экспериментальный plugein в Android Studio добавляет поддержку собственной сборки проекта.