使用SDK 12构建Android原生C++项目提示NDK最高仅支持API 30报错
配置项目:app C/C++: Platform version '31' is beyond '30', the maximum API level supported by this NDK.
问题产生原因
- 当前项目绑定的NDK版本最高仅支持API 30:NDK 22.x及更早版本的兼容上限为API Level 30,不支持API 31(Android 12)的原生构建逻辑。
- 即便本地已安装最新版NDK,项目默认会沿用创建时指定的旧版本NDK路径,或是build.gradle配置中锁定了低版本NDK,不会自动调用新安装的版本。
- 已安装的SDK Platform 12仅为Java层开发依赖,原生构建的API兼容性校验由NDK单独控制,和SDK Platform是否安装无关联。
解决办法
方案1:升级项目关联的NDK版本(推荐)
NDK r23及以上版本已正式支持API 31及更高版本的原生构建,按以下步骤修改配置即可:
- 先确认本地SDK Manager中已安装r23及以上版本的NDK。
- 打开项目根目录下的
local.properties文件,检查ndk.dir配置的路径是否指向你安装的最新版NDK文件夹,若指向旧版本则修改为最新版路径。 - 打开app模块的
build.gradle文件,在android代码块内添加/修改ndkVersion配置,指定为你本地安装的最新NDK版本号,示例如下:
android { ndkVersion "25.2.9519653" // 替换为你本地实际安装的最新NDK版本号 }
- 同步Gradle配置后重新执行构建即可。
方案2:临时降低原生构建目标API(仅用于临时验证,不推荐长期使用)
如果暂时不想升级NDK,可以临时修改构建配置绕过校验:
- 打开app模块的
build.gradle文件,将compileSdk参数修改为30。 - 找到
defaultConfig代码块下的externalNativeBuild配置,将cmake对应的API级别参数修改为30。 - 同步Gradle配置后重新构建即可。
内容的提问来源于stack exchange,提问作者Hasan A Yousef
相关产品推荐
相关产品推荐

