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

ndk-build返回非零值2,已排查相关Stack Overflow问题

排查ndk-build返回非零值2的问题

我已经查找过多个同标题的相关问题,并且花了数小时逐一排查所有能找到的同类问题,但仍然没能解决,所以特此发布新提问。

我的Android.mk配置:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := com_lunaticcoding_colosseum_OpenCv.cpp
LOCAL_LDLIBS += -llog
LOCAL_MODULE := OpenCvFace
include $(BUILD_SHARED_LIBRARY)

我的Application.mk配置(未完整):

APP_OPTIM := release
APP_PLATFORM := android-21
APP_STL := gnustl_static
APP_CPPFLAGS += -frtti
APP_CPPFL...

针对ndk-build返回非零值2的问题,我结合你的配置给出几个具体排查方向:

  • 先补全Application.mk的完整内容:目前你的APP_CPPFLAGS行明显没写完,语法不完整很可能直接导致ndk-build解析失败,比如是不是漏写了-fexceptions这类参数,或者末尾有拼写错误?先把这部分补全再试。
  • 核对源文件路径:确认com_lunaticcoding_colosseum_OpenCv.cpp确实在Android.mk所在的目录下,如果文件放在子文件夹里,LOCAL_SRC_FILES需要写成相对路径,比如src/com_lunaticcoding_colosseum_OpenCv.cpp,路径不对会触发编译阶段的文件找不到错误。
  • 检查NDK版本适配性:gnustl_static在NDK r18及以后的版本已经被移除了,如果你的NDK版本比较新,建议把APP_STL改成c++_static或者c++_shared,同时确保APP_PLATFORM := android-21是你的NDK支持的最低平台版本。
  • 获取详细错误日志:执行ndk-build的时候加上V=1参数(也就是运行ndk-build V=1),这个参数会输出完整的编译、链接命令和具体错误信息——返回码2只是一个通用错误,只有看到具体的报错内容(比如头文件缺失、符号未定义、语法错误)才能精准定位问题。
  • 确认OpenCV依赖配置:你的模块名叫OpenCvFace,但Android.mk里完全没有链接OpenCV的相关配置,如果你的cpp代码里用到了OpenCV的API,必须在Android.mk里添加LOCAL_SHARED_LIBRARIES += opencv_java(或者对应OpenCV的静态库模块),同时要确保OpenCV的NDK路径已经正确引入到项目中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:24:43