You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android NDK执行ndk-build失败求助:无对应目录及模块找不到

解决NDK-build执行失败及模块找不到问题

咱们一步步来排查和解决你的问题哈:

一、关于「ndk-bundle目录下没有ndk-build文件夹」的疑问

首先纠正一个小误解:ndk-build本身是一个脚本文件,不是文件夹。如果你的NDK版本是r21及以上,ndk-build不再放在ndk-bundle的根目录,而是移到了ndk-bundle/build/ndk-build路径下。这是因为Google从NDK r21开始主推CMake作为默认构建工具,逐步弱化了ndk-build的优先级,但还是保留了这个工具供开发者使用。

你可以自行检查NDK版本:进入ndk-bundle目录,查看source.properties文件,里面的Pkg.Revision字段就是版本号。如果是r21+,直接用/home/user/Android/Sdk/ndk-bundle/build/ndk-build路径执行即可,也可以把这个路径添加到你的PATH环境变量里,方便后续调用。

二、核心问题:解决ndk-build找不到ffmpeg模块的错误

从你终端输出的错误信息来看:

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 ?

这个错误的本质是NDK找不到你在Android.mk里导入的ffmpeg模块,下面是具体的解决步骤:

1. 先确认ffmpeg模块的实际路径是否存在

首先检查你在Android.mk里写的$(call import-module,ffmpeg/android/arm)这行代码,对应的实际文件路径是否存在。你需要确保:在某个目录下,存在ffmpeg/android/arm/Android.mk这个文件——这个文件是NDK识别模块的关键。

举个例子:如果你的ffmpeg编译产物放在/home/user/Android/AndroidStudioProjects/JNIINVOKEFFMPEG1/app/src/main/jni/ffmpeg/android/arm目录下,那你需要把当前的jni目录设置为NDK的模块搜索路径。

2. 正确配置NDK_MODULE_PATH环境变量

NDK_MODULE_PATH的作用就是告诉NDK去哪里寻找你导入的自定义模块,你可以通过以下三种方式设置:

方式一:终端临时设置(适合测试)

在执行ndk-build命令前,先运行:

export NDK_MODULE_PATH=/home/user/Android/AndroidStudioProjects/JNIINVOKEFFMPEG1/app/src/main/jni

之后再执行你的ndk-build命令即可。

方式二:在Android.mk中直接指定

在你的Android.mk文件开头,添加一行代码指定模块搜索路径:

LOCAL_PATH := $(call my-dir)
# 添加这行,将当前jni目录设为模块搜索路径
NDK_MODULE_PATH := $(LOCAL_PATH)

方式三:在~/.bashrc中永久配置

打开你的~/.bashrc文件,添加以下内容:

export NDK_MODULE_PATH=/home/user/Android/AndroidStudioProjects/JNIINVOKEFFMPEG1/app/src/main/jni

保存后执行source ~/.bashrc让配置立即生效。

3. 验证ffmpeg模块的Android.mk是否有效

检查ffmpeg/android/arm目录下的Android.mk文件,确认里面是否正确定义了LOCAL_MODULE等NDK模块必需的变量,确保NDK能识别这是一个合法的可导入模块。

额外的验证小步骤

  1. 手动确认路径:进入/home/user/Android/AndroidStudioProjects/JNIINVOKEFFMPEG1/app/src/main/jni/目录,查看是否存在ffmpeg/android/arm子目录,且目录内有Android.mk文件。
  2. 简化命令测试:先cd到jni目录,执行简化版的ndk-build命令测试:
ndk-build NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=./Android.mk APP_ABI=armeabi-v7a NDK_DEBUG=1 APP_PLATFORM=android-23

如果还是报错,再重点排查路径配置和模块的Android.mk文件。

内容的提问来源于stack exchange,提问作者user155

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:10:22