执行过程中出现错误.../ndk-bundle/ndk-build的参数为{NDK_PROJECT_PATH=null}。

3
我为什么会出现下一个错误?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.
3个回答

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找到moduleffmpeg/android/arm


对于有类似问题的用户:现在最好使用 CMake 而不是传统的 NDK 构建方式。这样更容易理解和配置。 - user155

1

这个解决方案适用于Android Studio。

在包中,选择具有ndk文件的文件夹,删除生成的中间文件(包括.build和.externalndkbuild),并清理项目。如果需要,在Android Studio中尝试无效缓存并重启。


0

在终端中启动,得到了这个答案:

Android NDK:找不到应用程序项目目录!

Android NDK:请定义NDK_PROJECT_PATH变量指向它。

因此,原因是最大路径长度限制(260个字符)。

通过将此代码添加到build.gradle(app)中,项目构建成功:

allprojects {
 if (Os.isFamily (Os.FAMILY_WINDOWS)) {
     buildDir = "$ {projectDir} /../../../../ build"
 }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接