Ошибка при выполнении процесса /ndk-bundle/ndk-build с аргументами {NDK_PROJECT_PATH=null

Почему я получаю следующую ошибку? p.s. на ndk-bundle нет папки ndk-build что это значит?

Build command failed.


Error while executing process /home/user/Android/Sdk/ndk-bundle/ndk-build with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/home/user/JNI/app/src/main/jni/Android.mk NDK_APPLICATION_MK=/home/user/JNI/app/src/main/jni/Application.mk APP_ABI=arm64-v8a NDK_ALL_ABIS=arm64-v8a NDK_DEBUG=1 APP_PLATFORM=android-23 NDK_OUT=/home/user/JNI/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=/home/user/JNI/app/build/intermediates/ndkBuild/debug/lib APP_SHORT_COMMANDS=false LOCAL_SHORT_COMMANDS=false -B -n}

в моем ~/.bashrc у меня есть следующее:

export NDK=/home/user/Android/Sdk/ndk-bundle
export PATH=$PATH:$NDK
export PATH=$PATH:/home/user/Android/Sdk

ОБНОВЛЕНИЕ

от ТЕРМИНАЛА:

user@user-X556UQK:~/Android/Sdk/ndk-bundle$ ndk-build NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/home/user/Android/AndroidStudioProjects/JNIINVOKEFFMPEG1/app/src/main/jni/Android.mk NDK_APPLICATION_MK=/home/user/Android/AndroidStudioProjects/JNIINVOKEFFMPEG1/app/src/main/jni/Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 APP_PLATFORM=android-23 NDK_OUT=/home/user/Android/AndroidStudioProjects/JNIINVOKEFFMPEG1/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=/home/user/Android/AndroidStudioProjects/JNIINVOKEFFMPEG1/app/build/intermediates/ndkBuild/debug/lib APP_SHORT_COMMANDS=false LOCAL_SHORT_COMMANDS=false -B -n
Android NDK: /home/user/Android/AndroidStudioProjects/JNIINVOKEFFMPEG1/app/src/main/jni/Android.mk: Cannot find module with tag 'ffmpeg/android/arm' in import path    
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?    
Android NDK: The following directories were searched:    
Android NDK:         
/home/user/Android/AndroidStudioProjects/JNIINVOKEFFMPEG1/app/src/main/jni/Android.mk:14: *** Android NDK: Aborting.    .  Stop.

person user155    schedule 16.05.2018    source источник
comment
Вы получаете эту ошибку от Android Studio, не так ли? Это не значит, что он не нашел ndk-build; в нем говорится, что по какой-то причине не удалось выполнить шаг C++ проекта Sync.   -  person Alex Cohn    schedule 17.05.2018
comment
@AlexCohn да, из Android Studio   -  person user155    schedule 17.05.2018
comment
простой шаг к пониманию ошибки - запустить ту же команду в терминале и понять ее вывод. Пожалуйста, точно скопируйте все аргументы: ndk-build NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/home/user/JNI/app/src/main/jni/Android.mk NDK_APPLICATION_MK=/home/user/JNI/app/src/main/jni/Application.mk APP_ABI=arm64-v8a NDK_ALL_ABIS=arm64-v8a NDK_DEBUG=1 APP_PLATFORM=android-23 NDK_OUT=/home/user/JNI/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=/home/user/JNI/app/build/intermediates/ndkBuild/debug/lib APP_SHORT_COMMANDS=false LOCAL_SHORT_COMMANDS=false -B -n   -  person Alex Cohn    schedule 17.05.2018
comment
@AlexCohn Я обновил вопрос   -  person user155    schedule 17.05.2018
comment
В вашем файле app/src/main/jni/Android.mk у вас, вероятно, есть $(call import-module,ffmpeg/android/arm) или что-то подобное. Укажите ** NDK_MODULE_PATH**, чтобы указать на файл ffmpeg/android/arm/Android.mk (см. документацию по адресу developer.android .com/ndk/guides/android_mk#mdv)   -  person Alex Cohn    schedule 17.05.2018
comment
@AlexCohn да, это помогло, но он все еще не может скомпилироваться (некоторые ошибки с кодом c). .so lib файл для интерфейса ffmpeg jni, кажется, это довольно старый проект (FFmpeg Android), и я пытаюсь собрать его, используя последнюю версию НДК (v17)   -  person user155    schedule 17.05.2018
comment
Настройка сборки ffmpeg для NDK r17 может быть нетривиальной, не стесняйтесь открывать отдельный вопрос, если вы заблудились   -  person Alex Cohn    schedule 17.05.2018


Ответы (3)


Итак, суть в том, что когда вы видите это сообщение в Android Studio,

Error while executing process …/ndk-bundle/ndk-build with arguments {…}

и вы не знаете, что на самом деле вызвало ошибку, вы должны попробовать запустить точно такую ​​же команду с точно такими же аргументами в терминале. Вывод может дать вам разумный намек.

В частности, в этом случае сообщение об ошибке от Android NDK объясняло, какой файл (/home/user/Android/AndroidStudioProjects/JNIINVOKEFFMPEG1/app/src/main/jni/Android.mk) и какая строка (14) вызвали проблемы, и даже объясняло, что можно сделать, чтобы исправить:

определите NDK_MODULE_PATH в своей среде, чтобы позволить NDK найти модуль ffmpeg/android/arm

person Alex Cohn    schedule 17.05.2018
comment
Для пользователей с похожими проблемами: сейчас лучше использовать CMake вместо устаревшей сборки NDK. Это намного проще понять, настроить - person user155; 10.01.2019

Это решение будет работать в студии Android.

В пакетах выберите папку с файлами ndk, удалите сгенерированные промежуточные продукты (включая .build и .externalndkbuild) и очистите проект, если требуется, попробуйте сделать недействительным кеш и перезапустить в студии Android.

person Priya Dharsini    schedule 22.01.2020

Запустил в терминале. Получил этот ответ:

Android NDK: не удалось найти каталог проекта приложения!

Android NDK: определите переменную NDK_PROJECT_PATH, чтобы она указывала на него.

В итоге причиной стало ограничение максимальной длины пути (260 символов).

Добавляя этот код в build.gradle (приложение), проект создает:

allprojects {
 if (Os.isFamily (Os.FAMILY_WINDOWS)) {
     buildDir = "$ {projectDir} /../../../../ build"
 }
}
person Juno Davis    schedule 05.05.2021