部落格 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 android@10.0.0

版本重點

  • 僅支援 AndroidX

    在此版本中,我們已完全遷移到 AndroidX 程式庫,不再支援 Android Support Library。所有繼續使用 Android Support Library 的外掛程式都需要更新以參考新的 AndroidX 程式庫。

    如果外掛程式尚未更新,您仍然可以使用 cordova-plugin-androidx-adapter 外掛程式,該外掛程式可用於將舊的參考遷移到新的 AndroidX 參考。

  • WebViewAssetLoader 支援

    預設情況下,WebViewAssetLoader 已啟用,並允許應用程式從「適當」的來源提供其內容。這將使 Angular 等框架的路由更容易運作。

    在沒有其他設定的情況下,應用程式內容從 https://127.0.0.1/ 提供。您可以通過設定偏好選項 hostname 來配置主機名稱。

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

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

    請注意,這是一個重大變更,將導致與 file:// 方案關聯的數據遺失,例如 cookie、本地儲存、本地快取和基於網路的資料庫。您需要處理數據的遷移。如果您目前無法遷移數據,您可以通過設定 AndroidInsecureFileModeEnabled 偏好標誌來還原此設定。

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

    設定此標誌會將內容保留在 file:// 方案上,Google 報告此方案是不安全的。

  • Android 應用程式套件 aab 支援

    預設情況下,發佈版本現在將為發佈生成 aab 格式的套件類型。

    本質上,aab 套件無法手動部署或推送到裝置進行測試。如果您需要測試發佈版本,您需要使用 packageType 標誌將套件類型改回 apk

    偵錯版本將繼續建立 apk 格式的套件。

  • 工具和預設支援升級

    • 目標 SDK (targetSdk):30
    • SDK 建置工具:30.0.3
    • Gradle:7.1.1
    • Kotlin:1.5.20
    • Android Gradle Plugin (AGP):4.2.2
    • Google Services Gradle Plugin: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-1052 feat!:僅支援 AndroidX
  • GH-1137 feat!:實作 WebViewAssetLoader
  • GH-1268 feat!:發佈版本預設為 aab 套件類型
  • GH-1182 feat!:升級 target sdk@30build-tool@30.0.3
  • GH-1257 feat!:升級 gradle@7.1.1
  • GH-1197 feat!:升級 gradle@6.8.3
  • GH-1256 feat!:升級 kotlin@1.5.20
  • GH-1204 feat!:升級 kotlin@1.4.32
  • GH-1200 feat!:升級 kotlin@1.4.31
  • GH-1255 feat!:升級 android-gradle-plugin@4.2.2
  • GH-1232 feat!:升級 android-gradle-plugin@4.2.1
  • GH-1198 feat!:升級 android-gradle-plugin@4.1.3
  • GH-1199 feat!:升級 Google Services Gradle Plugin@4.3.5
  • GH-1262 feat!:升級 appcompat@1.3.0
  • GH-1258 feat!:升級 android.webkit@1.4.0
  • GH-1252 feat!:移除已廢棄的 com.github.dcendents:android-maven-gradle-plugin
  • GH-1212 feat!:統一和修復 gradle 程式庫/工具覆寫
  • GH-1138 feat(allow-list)!:整合和重構核心外掛程式
  • GH-1201 feat!:升級 jfrog gradle-bintray-plugin@1.8.5
  • GH-1279 chore!:升級所有依賴項
  • GH-1278 chore!:停止支援 node 10
  • GH-1205 chore! (npm):更新所有依賴項
  • GH-1274 cleanup!:移除已廢棄的設定並新增待辦事項註解
  • GH-1048 cleanup!:移除 keystore 密碼提示
  • GH-1251 cleanup!:移除 jcenter 並更新依賴項
  • GH-1269 refactor!:不要將 JS 程式庫複製到平台專案
  • GH-1270 refactor(Api)!:使用 package.json 中的版本
  • GH-1266 refactor(run)!:run 方法
  • GH-1083 refactor!:停止支援 android SDK 工具
  • GH-1100 refactor!:移除大多數平台二進位檔案

新功能

  • 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:在 getASPath.bat 中新增遺失的 apache-license 標頭
  • GH-1275 fix:將 WebViewAssetloader 新增至預設允許清單
  • GH-1216 fix:在自訂檢視隱藏後請求焦點
  • GH-1264 fix:遺失 super.onRequestPermissionsResult 錯誤 (MissingSuperCall)
  • GH-563 fix(build):支援 Windows 上的波浪號擴展
  • GH-1220 fix(requirements 檢查):使用 regex 從 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):分解出通用變數