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

升级Android NDK r17后模块编译失败:MIPS/armeabi不再支持

NDK r17编译报错:不支持armeabi/MIPS/MIPS64的解决办法

很多开发者都遇到过你这个问题——NDK r17开始正式移除了对armeabi、MIPS和MIPS64这几个ABI的支持,所以当你的项目还在配置这些架构时,CMake工具链就会抛出你看到的那些错误。

问题根源

Google在NDK r17的发布说明里明确宣布,因为这些架构的市场占比极低,且维护成本高,所以停止对它们的支持。CMake的android.toolchain.cmake脚本会直接校验ABI的有效性,不允许使用已废弃的架构,进而导致编译器路径无法正确设置,引发后续的CMAKE_C_COMPILER和CMAKE_CXX_COMPILER未设置的连锁错误。

可行的解决办法

你可以试试下面这些步骤,大概率能解决问题:

  • 更新项目的ABI配置
    在你的Android模块的build.gradle文件中,修改ndk块里的abiFilters,只保留NDK r17支持的架构:

    android {
        defaultConfig {
            ndk {
                abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
            }
        }
    }
    

    如果你的项目直接用CMakeLists.txt指定架构,也要修改CMAKE_ANDROID_ARCH_ABI的设置,移除armeabi、mips、mips64相关的配置。

  • 检查第三方依赖库
    如果你项目里引用了第三方的原生库(.so文件),要确认这些库是否提供了上述支持的ABI版本。如果第三方库还只提供废弃的ABI,你需要联系库的开发者更新,或者寻找替代方案。

  • 清理编译缓存
    有时候旧的缓存会导致配置不生效,执行以下命令清理缓存后再重新编译:

    ./gradlew clean
    

关于回退到r16b的说明

回退到r16b确实能暂时解决问题,但这只是权宜之计。后续的NDK版本会彻底移除对这些废弃ABI的支持,而且旧版本NDK不会再接收安全补丁更新,长期来看建议尽快迁移到支持的架构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:17:13