【问题标题】:cordova android updating compileSDK versioncordova android 更新 compileSDK 版本
【发布时间】: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。

【问题讨论】:

    标签: android cordova cordova-android


    【解决方案1】:

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

    在那之前,我们可以使用来自npmnightly 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 中添加/更新条目,那么只能手动执行
    猜你喜欢
    • 1970-01-01
    • 2014-11-27
    • 2016-02-25
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    相关资源
    最近更新 更多