開場就是截圖震撼彈 !!!
遇到更新通常都是大災難
在修改的同時還要保證所有功能完整呈現
這一次 google 在 2019-08-01 的這一天
強制了兩項新政策
1、app 需支援 64 位元
2、 targetSdkVersion 需要 api 28 以上了
關於第一項我已經升級完了,歷程請看這邊
Android 簡介 arm64-v8a、armeabi-v7a、armeabi、x86、x86_64、mips、mips64,如何減少 apk 大小,so檔的相容 』Willy's Fish教學
第二項,要改的是 targetSdkVersion,那這個是什麼呢?
讓我們來看看 compileSdkVersion,minSdkVersion,targetSdkVersion 的差異吧
簡單來說 Android 就是用 compileSdkVersion,minSdkVersion,targetSdkVersion 來區分可以使用哪些API,要求的API級別是什麼,以及應用的兼容模式。
compileSdkVersion
作用是告訴 Gradle 用哪個 Android SDK 版本編譯
最好是用最新的SDK進行編譯,因為這樣編譯時就可以檢查到棄用的API
minSdkVersion
作用是 Google Play 商店用來判斷用戶設備是否可以安裝的因素之一
在開發時若我們使用了高於 minSdkVersion 的 API 時會警告你,幫助避免調用不存在的API的運行時問題。
targetSdkVersion
作用是 Android 向前兼容的主要依據
什麼意思呢? 舉個例
Android 4.4 API 19 及以下時使用 set() 和 setRepeating() 設置 alarm 的時間
alarm 會「精確」的在設定的時間點跳出
但在 API 19 以上使用的話
alarm 會在設定的時間點「之後」的一個時間跳出
這對於很要求精確的 APP 是個致命傷 ( 例如:鬧鐘app )
這個時候若 targetSdkVersion 不要更新,Android 就會自動用 19 以下的 api 運行
解釋完三個名詞之後
我們將 targetSdkVersion 改為 28
然後確認一下 app 運行正常即可
常遇問題應該是下面這些系列
implementation 'com.android.support:support-v4:28.0.0' implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support:design:28.0.0' 。。。等等
記得更新版本就可以了
但由於之後 adnroid support 只支援到 28
所以再來就是要挑戰更新到 AndroidX 了
留言列表