cordova android 更新 compileSDK 版本

Posted

技术标签:

【中文标题】cordova android 更新 compileSDK 版本【英文标题】:cordova android updating compileSDK version 【发布时间】:2021-09-23 11:27:16 【问题描述】:

我是使用 cordova-android 构建 android 应用程序的新手。

我在更新项目根目录的 config.xml 中的 compileSdkVersion/buildToolsVersion 时遇到问题。

cordova-android version-9 支持 api level 29,但 Android SDK API level 30 可用,cordova-android 仍未提供支持。

我尝试在 config.xml 中更新首选项 compileSdkVersion/buildToolsVersion,如下所示

<?xml version='1.0' encoding='utf-8'?>
我的第一个应用 测试应用 你的名字在这里

有人可以帮我更新以上两个属性,以便可以使用最新的 SDK API 级别 30 构建 apk。

【问题讨论】:

【参考方案1】:

基于 Cordova requirements and support,当前 cordova-android@9 支持 API 级别 29 及以下。我们可以预计,下一个版本 cordova-android@10 可能会针对 API 级别 30,并且可能需要等待 Cordova 团队的官方更新。

在那之前,我们可以使用来自npm 的nightly version of cordova-android@10

根据Google最近的截止日期,

2021 年 8 月 - 新应用必须至少面向 Android 11(API 级别 30)

2021 年 11 月 - 现有应用必须至少面向 Android 11(API 30 级)用于新应用更新

所以我们可以等到 8 月的官方更新 :)。

解决方法:(可能有效,也可能无效。在示例应用程序中使用它,然后在实际应用程序中实施)

在 config.xml 上更改 android-targetSdkVersion

<preference name="android-targetSdkVersion" value="30" />

使用删除平台

cordova platform remove android

然后添加最新的cordova android 版本:

cordova platform add android@latest

构建项目:

cordova build android

【讨论】:

上述方法没有升级到最新的android sdk版本(api level 30),因为cordova-android最新的官方版本是9.1.0以下是它创建的gradle属性。 project.ext defaultBuildToolsVersion="29.0.2" //String defaultMinSdkVersion=22 //Integer - Minimum requirement is Android 5.1 defaultTargetSdkVersion=29 //Integer - We ALWAYS target the latest by default defaultCompileSdkVersion=29 //Integer - We ALWAYS compile with the latest by default 正如我在回答中所说,解决方法可能有效,也可能无效。您需要等待 cordova 10 版本才能进一步更新它们。你试过nightly 版本吗?【参考方案2】:

在您的 config.xml 中添加/更新 targetSdk 版本到 30,如下所示。

<preference name="android-targetSdkVersion" value="30" />

以上命令会将 targetSdk 版本更改为 30

删除平台android并使用以下命令添加回来

cordova platform add android@10.0.0

以上命令会将 compileSdk 版本更新为 30。如果未完成此步骤,它将提供与添加平台时可用的任何版本相同的值。

还要确保您拥有最新的 sdk 并安装了构建工具以正确执行命令。

【讨论】:

有没有办法在 packages.json 或 config.xml 上强制使用 cordova-android 10? 是的,@paulloya 您也可以在 package.json 和 package-lock.json 中定义 "cordova-android": "10.0.0"。但是您仍然应该始终运行命令 cordova platform add android@10.0.0 如果它没有在 package.json 或 lock.json 中添加/更新条目,那么只能手动执行

以上是关于cordova android 更新 compileSDK 版本的主要内容,如果未能解决你的问题,请参考以下文章

更新cordova后无法构建ios/android平台

如何在 Android Studio 中更新 Cordova 版本

Ionic 3:更新到 cordova-android 9 后无法从驱动器中选择文件

Ionic 3:更新 Cordova 等后无法构建 Android

使用 nodejs 8、angularjs、ionic3、cordova8 更新 cordova-android 6 到 9、cordova-ios 5 到 6

android Studio 降级gradle