iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0

Day 16 提到 Android Gradle Plugin 升級助手,我們來嘗試使用看看。

記得先用版本控制工具留下紀錄點

https://ithelp.ithome.com.tw/upload/images/20231001/20151956zb2XsOwsmf.png

升級完成,編譯器提示升級後的專案有同步 Gradle 成功。
它叫我們在進一步修改專案前,要先對升級後的版本測試完畢。
https://ithelp.ithome.com.tw/upload/images/20231001/201519561pedR5WmT2.png

重新構建這個升級版本,結果構建成功後無法在實機上安裝。
https://ithelp.ithome.com.tw/upload/images/20231001/20151956ZR7BIOwVxJ.png

為什麼 Android Gradle Plugin 從 7.0.4 升級到 7.4.2 便無法在實機上安裝呢?
這個情況我從上個月一直卡到今天,今天繼續使用試誤法來找出原因以便修復。

Google 搜尋後,猜測原因如下:

  1. 本次構建的版本號碼低於實機中已安裝的 App 版本
  2. 本次構建版本的 App id 與實機中已安裝的 App 重覆
  3. AndroidManifest.xml 相關問題。例如採用多個 Activity 的專案,未將所有的 Activity 指定 android:exported 屬性。

在針對可能原因的 1、2 下手後,有得到暫時的解法。

解法

  1. 在 Android Studio 的 Terminal 頁籤,使用 adb uninstall com.my.work.stg 指令。com.my.work.stg 是你的 application id。蠻多開發者會使用 flavour 來對特定構建版本增加 application id 的尾綴字串(舉例中的 .stg)。
  2. 利用 Android Studio 的 Build > Generate Signed Bundle / APK... 來構建 Android Gradle Plugin 升級後版本。
  3. 在 Android Studio 的 Terminal 頁籤,使用 adb install C:\測試_v1.0.0b3_release.apk 指令。C:\測試_v1.0.0b3_release.apk 可以從專案資料夾的對應 flavour 資料夾找到檔案。例如:C:\MyProjects\android-my-work_dev\app\stg\release\測試_v1.0.0b3_release.apk
  4. 去實機找對應的 App 名稱圖示,啟動後從 App 內的版本資訊去驗證是不是有真正安裝到 Android Gradle Plugin 升級後版本。
  5. 最後,記得要針對這個版本進行全面測試。

上一篇
[Day 16] Android Gradle Plugin Version 與 Gradle Version
下一篇
[Day 18] 設定 namespace
系列文
[Android] 怎麼蓋地基?論 build.gradle 與它的快樂夥伴們30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言