博客 RSS订阅

Cordova Android 10.0.0 发布!
作者:Bryan Ellis
2021年7月20日

我们很高兴地宣布,我们刚刚发布了 Cordova Android 10.0.0!这是 Cordova 支持的构建 Android 移动应用程序的平台之一。

升级

cordova platform remove android
cordova platform add [email protected]

版本亮点

  • 仅支持 AndroidX

    在此版本中,我们已完全迁移到 AndroidX 库,不再支持 Android Support 库。所有继续使用 Android Support 库的插件都需要更新以引用新的 AndroidX 库。

    如果插件尚未更新,您仍然可以使用 cordova-plugin-androidx-adapter 插件,该插件可用于将旧引用迁移到新的 AndroidX 引用。

  • WebViewAssetLoader 支持

    默认情况下,启用 WebViewAssetLoader,允许应用程序从“正确的”源提供其内容。这将使 Angular 等框架的路由工作变得容易。

    无需其他配置,应用程序内容将从 https://127.0.0.1/ 提供。您可以通过设置首选项选项 hostname 来配置主机名。

      <preference name="hostname" value="localhost" />
    

    方案 https 本质上是不可配置的。

    请注意,这是一个重大更改,会导致与 file:// 方案关联的数据(如 Cookie、本地存储、本地缓存和基于 Web 的数据库)丢失。您将需要处理数据迁移。如果您目前无法迁移数据,则可以通过设置 AndroidInsecureFileModeEnabled 首选项标志来还原此设置。

      <preference name="AndroidInsecureFileModeEnabled" value="true" />
    

    设置此标志会将内容保留在 file:// 方案上,Google 报告此方案不安全。

  • Android App Bundles aab 支持

    默认情况下,发布版本现在将生成 aab 格式的发布包类型。

    本质上,aab 包不能手动部署或推送到设备进行测试。如果您需要测试发布版本,则需要使用 packageType 标志将包类型改回 apk

    调试版本将继续创建 apk 格式的包。

  • 工具和默认支持提升

    • 目标 SDK (targetSdk): 30
    • SDK 构建工具: 30.0.3
    • Gradle: 7.1.1
    • Kotlin: 1.5.20
    • Android Gradle 插件 (AGP): 4.2.2
    • Google Services Gradle 插件: 4.3.5
  • Node 支持

    由于 Node 10 不再受 Node.js 团队支持,我们已放弃对 Node 10 的支持。

  • Java 11 支持

    随着当前 Android Studio 4.2 版本的发布,Android 工具现在可以支持在 Java 11 上运行。请注意,这并不意味着您可以开始编译 Java 11 源代码。

请在 issues.cordova.io 报告您发现的任何问题!

问题通知

对于启用 Google Services Gradle 插件的用户或插件,存在一个已知问题。

https://github.com/apache/cordova-android/issues/1284

我们正在准备并争取在未来三天内进行补丁版本投票。

完整变更日志

重大变更

功能

  • GH-1241 feat: 删除 java 1.8 版本检查
  • GH-1254 feat: 支持 webkit 版本覆盖
  • GH-1229 feat: CORDOVA_JAVA_HOME 环境变量
  • GH-1222 feat: 为 WebViewAssetLoader 添加向后兼容模式
  • GH-1166 feat: 重载 PluginEntry 构造函数以设置 onload 属性
  • GH-1208 feat: 允许 appcompat 版本可配置
  • GH-1047 feat: 弃用 onRequestPermissionResult,为了保持一致性,改为使用 onRequestPermissionsResult

修复

  • GH-1283 fix: 将缺少的 apache-license 标头添加到 getASPath.bat
  • GH-1275 fix: 将 WebViewAssetloader 添加到默认允许列表
  • GH-1216 fix: 在自定义视图隐藏后请求焦点
  • GH-1264 fix: 缺少 super.onRequestPermissionsResult 错误 (MissingSuperCall)
  • GH-563 fix(build): 支持 Windows 上的波浪号扩展
  • GH-1220 fix(requirements 检查): 使用正则表达式从 javac 输出获取 java 版本
  • GH-1227 fix(prepare): 如果未使用启动画面,则删除启动画面
  • GH-1228 fix: java 检查
  • GH-1276 fix: 删除强制默认的 gradle.daemon 设置

重构

  • GH-1265 refactor: 不要从脚本位置推断项目根目录
  • GH-1267 refactor: 使用构建 APK 的目标 SDK 来确定最佳模拟器
  • GH-1253 refactor: gradle 清理
  • GH-1260 refactor(check_reqs): 从 check_android_target 中删除 originalError 参数
  • GH-1246 refactor(env/java): 改进测试和实现

杂项和清理

  • GH-1273 chore: 删除旧的 VERSION 文件
  • GH-1272 cleanup: 删除旧的 ANT 和 Eclipse 文件
  • GH-1141 cleanup: 删除应用程序缓存设置

CI,构建和测试

  • GH-1218 ci: 将 Node16 添加到 CI 矩阵
  • GH-1271 build: 在 npm 准备期间构建 cordova.js
  • GH-1207 test(AndroidManifest): 将主题更新为 Theme.AppCompat.NoActionBar
  • GH-1263 test(check_reqs): 不要硬编码 DEFAULT_TARGET_API
  • GH-1259 test(prepare): 分解出公共变量