NDK не может найти каталог приложения
При запуске команды ndk-build возникает следующая ошибка:
Android NDK: Could not find application project directory !
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
Содержимое моего файла Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := FRE
LOCAL_SRC_FILES := FlashRuntimeExtensions.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := NativeQCAR
LOCAL_SRC_FILES := main.c
LOCAL_SHARED_LIBRARIES := FRE
include $(BUILD_SHARED_LIBRARY)
Добавление следующей строки не помогает:
NDK_PROJECT_PATH = C:/Users/Wessel/Dropbox/workspace/eclipse/NativeQ
Ответы
Ответ 1
NDK_PROJECT_PATH
- это переменная среды, поэтому вам не нужно включать ее в файл Android.mk
. Является ли nkd-build
запущен в каталоге проекта?
Подробнее читайте документы в docs/HOWTO.html
в папке NDK, где я читаю
Начиная с NDK r4, вы можете просто поместить файл в $PROJECT/jni/ и запустите "ndk-build" script из вашего дерева проектов.
Если вы хотите использовать 'ndk-build', но поместите файл в другое место, используйте переменную переопределения GNU Make как:
ndk-build NDK_APPLICATION_MK=/path/to/your/Application.mk
Ответ 2
Вы можете использовать следующую команду
ndk-build -C your_project_path
Надеюсь, это ответит на ваш вопрос.
Ответ 3
Я не нашел ни одного ответа, который был бы удовлетворительным для меня, возможно, это зависит от того, пытаетесь ли вы создать существующее приложение, создать новый или, возможно, переносить какое-то существующее родное приложение. Эти рекомендации работают с android-ndk-r9b, но должны работать с последними релизами
Файл make build -local.mk, используемый ndk-build, сделает некоторые догадки о местоположении файла make-приложения.
По умолчанию кажется, что NDK ориентирован на то, что вы упаковываете файлы приложений NDK Application.mk
и Android.mk
под подкаталог jni
. Это работает хорошо, и вы можете просто использовать командную строку:
$ ndk-build
Если вы не хотите иметь подкаталог jni
, например, возможно, вы переносите инструмент командной строки linux на Android, возможно, вам подходит следующее:
Создайте пустой AndroidManifest.xml
файл
Теперь создайте файл Application.mk
со следующим содержимым:
APP_BUILD_SCRIPT := Android.mk
Затем создайте файл Android.mk
, например:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := foo.c
LOCAL_MODULE := foo
include $(BUILD_EXECUTABLE)
Чтобы создать приложение, используйте:
$ ndk-build NDK_APPLICATION_MK=`pwd`/Application.mk
Ответ 4
ndk-build NDK_APPLICATION_MK=path\to\your\src\main\jni\Application.mk NDK_PROJECT_PATH=path\to\your\module\src\main
Ответ 5
Вам нужно указать 3 вещи.
NDK_PROJECT_PATH - the location of your project
NDK_APPLICATION_MK - the path of the Application.mk file
APP_BUILD_SCRIPT - the path to the Android.mk file
Это необходимо для переопределения значений по умолчанию для сборки script, которая ожидает, что все будет в папке jni.
При вызове ndk-build используйте
ndk-build NDK_PROJECT_PATH=/path/to/proj NDK_APPLICATION_MK=/path/to/Application.mk
В Application.mk добавить
APP_BUILD_SCRIPT := /path/to/Android.mk
Ответ 6
Это то, что я использую cd
в каталоге проекта и выполняю:
ndk-build NDK_PROJECT_PATH=.
![введите описание изображения здесь]()
Ответ 7
Следуйте ниже:
1)Right on your project
2)Go to properties
3)Go to C/C++ Build
4)Go to Builder Settings
5)Go to Build Location
Add build directory
6)Click on Workspace
7)Select your project folder
вы должны увидеть что-то вроде
${workspace_loc:/[Your Project_Name]}
Готово!!
Ответ 8
Это сработало для меня. Нет переменных среды и нет настроек. Перейдите в корневой каталог, в котором вы разархивировали ndk в командной строке и выполнили команду ndk-build:
ndk-build NDK_PROJECT_PATH = путь к вашему проекту
Образец будет выглядеть так на моей машине dev:
C:\adt-bundle-windows-x86-20140321\android-ndk-r9d>ndk-build NDK_PROJECT_PATH=D: /workspace/naruto
Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersi on 9 in D:/workspace/naruto/AndroidManifest.xml
[armeabi] Compile thumb : ndkfoo <= ndkfoo.c
[armeabi] SharedLibrary : libndkfoo.so
[armeabi] Install : libndkfoo.so => libs/armeabi/libndkfoo.so
Ответ 9
-C
работал у меня.
![введите описание изображения здесь]()
Вы также можете использовать терминал mac для этого.
Ответ 10
Вам нужно выполнить следующие шаги:
1.Перейдите в папку, содержащую Android.mk
2. Введите путь android-ndk к $NDK_PROJECT_PATH. например: export NDK_PROJECT_PATH =/home/android-ndk-r8b.
3. Добавить NDK в $PATH. например: export PATH = $PATH:/home/android-ndk-r8b.
Ответ 11
Установите рабочий каталог рабочего стола ndk, чтобы решить вашу проблему, так как я получил ту же проблему и решил ее таким образом.
Путь: Свойства проекта → Строители → - > Главная → Рабочий каталог