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

Cordova中Android API版本指定方法及默认选API23原因解析

嘿,这个问题我刚好碰到过,来给你捋清楚哈~

为什么默认会用API 23?

核心原因是你使用的cordova-template-mfp(MobileFirst Platform Cordova模板)默认绑定了特定版本的cordova-android插件,而每个cordova-android版本都对应一个默认的Target/Compile SDK版本。比如早期的cordova-android 6.x系列默认就会使用API 23,哪怕你本地SDK里有更高版本,Cordova也会优先遵循当前cordova-android包的默认配置,不会自动匹配你已安装的最新SDK。另外要纠正个小细节:API 23对应的是Android 6.0,不是5.1.1哦😉

有没有Cordova相关配置文件可以指定API版本?

当然有,主要有这几个关键配置点:

  • 项目根目录的config.xml:这是最推荐的持久化配置方式,修改后不会被cordova prepare覆盖
  • platforms/android/build.gradle:这个是自动生成的构建文件,直接修改会被后续的Cordova命令覆盖,所以不建议手动改
  • package.json:可以通过指定cordova-android的依赖版本,间接控制默认的API版本范围
如何指定你需要的Android API版本?

给你三种靠谱的方法,按需选择:

方法1:添加平台时直接指定参数

在添加Android平台的命令里,通过--variable参数直接指定SDK版本,比如你要API 27的话:

cordova platform add android@7.1.0 --variable ANDROID_TARGET_SDK_VERSION=27 --variable ANDROID_COMPILE_SDK_VERSION=27

这里的android@7.1.0是对应API27的cordova-android版本,给你个大致的版本对应参考:

  • cordova-android 7.x → 支持API26/27
  • cordova-android 8.x → 支持API28
  • cordova-android 9.x → 支持API29

方法2:修改config.xml持久化配置

打开项目根目录的config.xml,在<platform name="android">节点下添加偏好设置,这样每次执行cordova prepare都会自动应用:

<platform name="android">
    <!-- 指定目标SDK版本 -->
    <preference name="android-targetSdkVersion" value="27" />
    <!-- 指定编译SDK版本 -->
    <preference name="android-compileSdkVersion" value="27" />
    <!-- 可选:指定最低支持的SDK版本 -->
    <preference name="android-minSdkVersion" value="22" />
</platform>

修改完后执行cordova prepare android让配置生效即可。

方法3:升级/指定cordova-android版本

如果当前模板默认安装的cordova-android版本太旧,你可以先移除旧平台,再安装对应目标API版本的cordova-android:

# 先移除旧平台
cordova platform remove android
# 安装指定版本的cordova-android(比如对应API27的7.1.0)
cordova platform add android@7.1.0

之后再配合config.xml的偏好设置,就能牢牢锁定你需要的API版本了。

⚠️ 小提醒:MobileFirst Platform对cordova-android版本可能有兼容性要求,操作前最好确认下你的MFP版本支持的cordova-android范围,避免出现兼容性问题哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:31:09