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

Mac执行gradlew build报错缺失android-ndk-r16b clang++文件问题

问题产生原因

Android NDK r16b的LLVM工具链中,clang++并非独立编译的可执行文件,而是指向同目录下clang二进制的软链接。该报错的核心诱因是软链接丢失,常见触发场景有两种:

  • 解压NDK压缩包时使用了不支持保留Unix软链接属性的工具,包括Mac旧版自带归档实用工具、部分第三方图形化解压软件,解压过程会直接跳过软链接文件,最终目录里只剩clang等实体文件,缺失clang++入口
  • 从Windows等非Unix系统直接拷贝已解压的NDK目录到Mac设备,跨文件系统的软链接格式不兼容,导致链接文件损坏丢失
解决方法

按操作成本从低到高排列,按需选择即可:

  • 手动补建缺失软链接
    打开终端,进入报错提示的NDK工具bin目录:
    cd 你的本地存储路径/android-ndk-r16b/toolchains/llvm/prebuilt/darwin-x86_64/bin
    
    执行命令创建软链接:
    ln -s clang clang++
    
    创建完成后执行./clang++ --version验证,能正常输出版本信息即修复成功。之后回到项目根目录,先执行./gradlew clean清空旧构建缓存,再重新执行build命令即可。如果构建过程中提示缺失带版本后缀的clang++文件(比如clang++5.0),用同样方式创建指向clang的软链接即可。
  • 用命令行工具重新解压NDK安装包
    不要使用图形化解压软件,打开终端进入NDK压缩包所在目录,执行系统自带的unzip命令解压:
    unzip android-ndk-r16b-darwin-x86_64.zip
    
    命令行unzip默认会完整保留压缩包内的软链接结构,解压完成后替换原有损坏的NDK目录即可正常构建。
  • 升级NDK版本(适合无强版本绑定的项目)
    NDK r16b是2017年发布的老旧版本,后续r17及以上正式版本已经修复了Mac平台下软链接兼容、解压丢失的相关问题,和新版Gradle、Android构建插件的适配性也更好。如果项目原生代码没有强依赖r16b的特定编译逻辑,升级到更新的NDK长期支持版本可以从根源规避这类老旧版本的兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 00:06:35