接下來要來講些Android 的部分,因為種種因素所以必須處理一些android專案,但因為我沒有正規的學過Android開發,所以全部都是自學,學習的順序也是屬於頭痛醫頭腳痛醫腳的模式,本篇主要是紀錄我更新API版本的部分,原本專案的API 為 28,預計將其更新至API 30,但因為我不太熟悉的原因,會分兩階段進行,先升級至API 29,再升至API 30,中間會一併更新的也會做個紀錄。
我電腦原本使用的Android Studio 版本:
Android Studio是用Gradle來建構專案的,而build.gradle是以groovy語言寫的,
接著我們開啟專案,並找到build.gradle(:app)檔案,此檔案有點類似建構專案的腳本,
把各種關於如何編譯APP等等的設定全寫進檔案裡,以此執行
找到下方的代碼,將其更新為API 29
compileSdkVersion 28
defaultConfig {
applicationId "com.test.project”
minSdkVersion 19
targetSdkVersion 28
versionCode 18
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
multiDexEnabled true
maxSdkVersion 28
}
buildToolsVersion '28.0.3'
Step1:
將以下版本號改為29compileSdkVersion 29
targetSdkVersion 29
maxSdkVersion 29
buildToolsVersion '29.0.3’
編譯後沒有出現錯誤,繼續更新為API 30
Step2:compileSdkVersion 30
targetSdkVersion 30
maxSdkVersion 30
buildToolsVersion ’30.0.3’
編譯成功,但運行APP時卻閃退
查看logcat看到錯誤訊息Rejecting re-init on previously-failed class
,下方皆是第三方套件的錯誤訊息
於是查找AndroidManifest.xml中依賴庫中的此套件implementation 'com.squareup.okhttp3:okhttp:4.0.1'
將其更新為implementation 'com.squareup.okhttp3:okhttp:4.9.1’
然後點擊上方出現的提示”Sync Now”,同步一下
接著我們再執行編譯,確認APP運行正常,即完成更新