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

Ubuntu下使用CMake编译Android armeabi-v7a共享库遇NDK无android-26 API错误

报错原因

你使用的NDK r23b版本已经移除了传统platforms目录下各API级别独立存放的目录结构,改为统一的头文件/库路径适配不同API级别,CMake按照旧逻辑查找android-26目录自然会失败。

解决方案

你可以选以下任意一种方式解决:

  • 优先使用NDK内置的CMake工具链配置,无需自己手动编写toolchain.cmake的系统参数。编译时直接指定对应参数即可:
    cmake .. \
    -DCMAKE_TOOLCHAIN_FILE=/home/user/android-ndk-r23b/build/cmake/android.toolchain.cmake \
    -DANDROID_ABI=armeabi-v7a \
    -DANDROID_API_LEVEL=26 \
    -DANDROID_STL=c++_shared
    
    内置工具链会自动适配NDK的新路径规则,不会触发旧目录查找逻辑。
  • 如果你需要保留自定义的toolchain.cmake文件,在原有配置中新增一行即可:
    set(CMAKE_ANDROID_NDK_DEPRECATED_HEADERS OFF)
    
    该参数会强制CMake使用NDK新版本的统一路径查找逻辑,跳过对platforms下独立API目录的检查。
  • 如果你需要兼容旧项目配置,也可以将NDK版本降级到r22及更早版本,这类版本仍保留了platforms下各API级别的独立目录,可直接适配你现有的配置。

注意:修改配置后需要删除之前生成的build缓存目录,重新执行CMake生成和编译流程才能生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:06:04