การอัปเดต Gradle และปลั๊กอิน Android Gradle
อัปเกรดเวอร์ชัน Gradle และปลั๊กอิน Android Gradle
ก่อนอื่น ให้อัปเกรดเวอร์ชัน Gradle และปลั๊กอิน Android Gradle การอัปเกรดนี้ รวมถึงการทำงานร่วมกับทรัพยากร Dependency ของ SDK บางรายการได้ดีขึ้น (รวมถึง Kotlin 1.9) ตลอดจนการแก้ไขข้อบกพร่องร้ายแรงบางอย่าง
การเปิดตัว SDK เวอร์ชันหลักนี้กำหนดให้โปรเจ็กต์แอปพลิเคชัน Android ของคุณต้องมีทรัพยากร Dependency เวอร์ชันต่อไปนี้
- Gradle เวอร์ชันอย่างน้อย v7.5.0 แต่ไม่สูงกว่า v7.6.0
- ปลั๊กอิน Android Gradle (AGP) เวอร์ชันในช่วง v7.4.x
คุณสามารถกำหนดเป้าหมายปลั๊กอินเวอร์ชันที่สูงกว่าได้ แต่คุณอาจได้รับคำเตือนเกี่ยวกับการเลิกใช้งาน หรือฟีเจอร์ใหม่บางอย่างอาจไม่ทำงาน
หากต้องการแก้ไขเวอร์ชัน 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
เนื่องจากระดับ API ขั้นต่ำของ SDK คือ 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 v7.4 ขึ้นไปใช้ R8 เป็นเครื่องมือลดขนาด ป้องกันการเปลี่ยนแปลง และเพิ่มประสิทธิภาพเริ่มต้น สำหรับไบนารี จึงไม่ต้องดำเนินการใดๆ เป็นพิเศษในตอนนี้
หากย้ายข้อมูลโปรเจ็กต์จาก AGP 4.0 ขึ้นไป AGP อาจแสดงคำเตือนต่อไปนี้เกี่ยวกับการนำไฟล์ออก
- การใช้งาน
useProguard true
ในไฟล์build.gradle
- การใช้งาน
android.enableR8=false
ในไฟล์gradle.properties
การนำบรรทัดเหล่านี้ออกมักจะช่วยแก้ปัญหาดังกล่าวได้
การย้ายข้อมูลจาก Kotlin 1.6 เป็น 1.9
ขั้นตอนที่ 1 - ย้ายข้อมูลไปยังปลั๊กอิน Kotlin Gradle 1.9.0
อัปเดตเวอร์ชันปลั๊กอิน Kotlin Gradle ในไฟล์ build.gradle ของโมดูลระดับบนสุดของแอปพลิเคชัน โปรดตรวจสอบว่าได้เพิ่ม org.jetbrains.kotlin:kotlin-gradle-plugin
ในการอ้างอิงจากบล็อก buildscript ในกรณีที่ไม่มี
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0"
}
}
คุณต้องย้ายข้อมูลแอปพลิเคชันจาก Kotlin-synthetics ในกรณีที่ใช้ Kotlin Gradle Plugin 1.6.X หรือ 1.7.X ดูข้อมูลเพิ่มเติมได้ที่คำแนะนำ ในการย้ายข้อมูลอย่างเป็นทางการ
ขั้นตอนที่ 2 - อัปเกรด kotlin-stdlib เป็น 1.9.0
อัปเกรด kotlin-stblib
เป็น 1.9.0 ในไฟล์ build.gradle ของแอปพลิเคชัน
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.0"
}
โปรดนำการอ้างอิงถึง kotlin-stdlib-jdk7
หรือ
kotlin-stdlib-jdk8
ออก เราได้รวมทรัพยากร Dependency ทั้ง 2 รายการไว้ใน
kotlin-stdlib
ตั้งแต่ Kotlin
1.8.0 เป็นต้นไป