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

升级Cordova项目到Android 12时出现cdvMinSdkVersion未知属性错误

解决Cordova升级Android 12时gradle变量未找到的问题

问题核心

旧Cordova项目升级到Android 12时,插件的gradle脚本(如cordova-plugin-browsertabs的app-BrowserTab.gradle)无法识别cdvMinSdkVersion等Cordova内部变量,同时提示compileSdkVersion is not specified,即使已经在config.xml和cdv-gradle-config.json中配置了对应参数。

解决方案

1. 升级Cordova Android平台到适配版本

这是最根本的解决办法,新版Cordova Android会正确管理gradle变量的传递:

  • 先移除旧Android平台:
    cordova platform remove android
    
  • 安装支持Android 12的稳定版本(推荐12.0.0及以上,对应targetSdk 33):
    cordova platform add android@12.0.0
    
  • 重新构建项目,此时Cordova会自动将config.xml中的偏好设置映射到gradle变量,插件脚本能正确读取。

2. 修复插件的gradle配置(无法升级平台时)

如果无法升级平台,可修改插件的gradle文件(或通过钩子脚本自动修改):

  • 找到插件的gradle文件(如platforms/android/cordova-plugin-browsertabs/app-BrowserTab.gradle),将直接引用的cdvMinSdkVersion、cdvCompileSdkVersion等变量,替换为从根项目读取:
    // 原代码
    minSdkVersion cdvMinSdkVersion
    compileSdkVersion cdvCompileSdkVersion
    
    // 修改后
    minSdkVersion rootProject.ext.cdvMinSdkVersion
    compileSdkVersion rootProject.ext.cdvCompileSdkVersion
    
  • 为了避免每次添加平台后都手动修改,可编写Cordova钩子脚本(如hooks/after_platform_add/fix_plugin_gradles.js),自动遍历所有插件的gradle文件并替换变量引用。

3. 替换或更新不兼容的插件

cordova-plugin-browsertabs的当前版本可能未适配新版Cordova Android:

  • 检查插件仓库是否有更新版本,若有则更新:
    cordova plugin update cordova-plugin-browsertabs
    
  • 若没有更新,可fork该插件仓库,修改其gradle配置后本地安装:
    cordova plugin add ./path/to/your/forked-plugin-folder --save
    

4. 验证构建参数传递

尝试在构建命令中显式传递gradle参数,确保变量被正确注入:

cordova build android --release -- --keystore=****** --storePassword=******** --alias=safeprofile --password=********* -PcdvMinSdkVersion=26 -PcdvCompileSdkVersion=33 -PcdvTargetSdkVersion=33

内容的提问来源于stack exchange,提问作者Khandakar Rashed Hassan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 17:30:23