Gradle 和 Android Gradle 外掛程式更新
升級 Gradle 和 Android Gradle 外掛程式版本
首先,請升級 Gradle 和 Android Gradle 外掛程式版本。本次升級 可改善與特定 SDK 依附元件的相容性 (包括 Kotlin 1.9),也修正了一些重大錯誤。
這個 SDK 主要版本需要下列版本的依附元件: Android 應用程式專案:
- 搭載 7.5.0 以上版本但低於 v7.6.0 的 Gradle。
- Android Gradle 外掛程式 (AGP) 版本。
您可以指定較新版本的外掛程式;不過,您可能執行 可能會導致淘汰警告,或者某些新功能可能無法運作。
如要修改 Gradle 版本,請修改專案的
/gradle/wrapper/gradle-wrapper.properties
個檔案
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
如要修改 Android Gradle 外掛程式版本,請將 build.gradle
檔案
包含 buildscript
區塊例如:
buildscript {
repositories {
google()
mavenCentral()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.4.1'
}
}
支援遷移 Java 7 至 Java 8 程式庫
步驟 1:啟用 Java 8 程式庫支援
由於 SDK 最低 API 級別為 23,所需的 AGP 版本為 7.4 以上,因此 與前述來源說明文件稍有不同
buildscript {
repositories {
google()
mavenCentral()
jcenter()
maven {
url = uri("https://storage.googleapis.com/r8-releases/raw")
}
}
dependencies {
classpath 'com.android.tools:r8:8.0.46'
classpath 'com.android.tools.build:gradle:7.4.1'
}
}
android {
compileOptions {
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
// Sets Java compatibility to Java 8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.3'
}
步驟 2:從 Proguard 或 Dexguard 遷移至 R8
AGP 7.4 以上版本使用 R8 做為預設的縮減、模糊處理和最佳化工具 ,因此目前不需要採取任何特殊動作。
如果專案是從 AGP 4.0 以上版本遷移,AGP 可能會發出下列警告 關於移除檔案的資訊:
build.gradle
檔案使用useProguard true
次gradle.properties
檔案使用android.enableR8=false
次
通常只要移除這行程式碼,即可解決問題。
Kotlin 1.6 至 1.9 版遷移作業
步驟 1 - 遷移至 Kotlin Gradle 外掛程式 1.9.0 版
更新應用程式頂層模組中的 Kotlin Gradle 外掛程式版本
build.gradle 檔案。請務必新增 org.jetbrains.kotlin:kotlin-gradle-plugin
以備不時之需
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0"
}
}
您必須從 Kotlin 合成項目遷移應用程式,以防您 來自 Kotlin Gradle 外掛程式 1.6.X 或 1.7.X請參閱官方的遷移說明 指南 瞭解詳情
步驟 2 - 將 kotlin-stdlib 升級至 1.9.0
在應用程式 build.gradle 檔案中,將 kotlin-stblib
升級至 1.9.0 版。
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.0"
}
請務必移除所有對 kotlin-stdlib-jdk7
或
kotlin-stdlib-jdk8
。兩個依附元件已合併為
從 Kotlin 開始的 kotlin-stdlib
1.8.0.