GitHub Actions构建含C++原生代码的Android应用出现NDK头文件找不到报错
问题根因
核心为跨平台路径分隔符不兼容导致的头文件查找失败:
- 本地Windows系统的合法路径分隔符为反斜杠
\,而GitHub Actions默认使用的Ubuntu Runner属于Linux类系统,路径分隔符仅识别正斜杠/,你代码中写的反斜杠路径在Linux环境下会被识别为非法路径,因此无法定位到目标头文件。
解决方案
- 替换所有C/C++代码中头文件引入的路径分隔符为正斜杠
/,将报错的引入行修改为:
#include "vendor/RakNet/SAMP/samp_netencr.h"
正斜杠路径可被Windows、Linux、macOS全平台的NDK编译器正常识别,修改后不会影响你本地Windows设备的构建流程。
- 校验构建配置中的头文件搜索路径是否正确:
- 若使用ndk-build(Android.mk)构建,确认
LOCAL_C_INCLUDES配置已包含cpp根目录:
LOCAL_C_INCLUDES += $(LOCAL_PATH)/src/main/cpp
- 若使用CMake构建,确认
include_directories配置已包含cpp根目录:
include_directories(src/main/cpp)
- 可选:在CI工作流中添加路径校验步骤,确认目标头文件确实存在于对应路径:
- name: 校验头文件路径 run: ls -R app/src/main/cpp/vendor/RakNet/SAMP/
内容的提问来源于stack exchange,提问作者A. George
相关产品推荐
相关产品推荐

