การอัปเดต Gradle และปลั๊กอิน Android Gradle
อัปเกรดเวอร์ชัน Gradle และปลั๊กอิน Android Gradle
ก่อนอื่น ให้อัปเกรดเวอร์ชัน Gradle และปลั๊กอิน Android Gradle การอัปเกรดนี้รวมถึงความเข้ากันได้ที่ดีขึ้นกับการขึ้นต่อกันของ SDK บางรายการ (รวมถึง Kotlin 1.9) ตลอดจนการแก้ไขข้อบกพร่องที่สำคัญบางอย่าง
SDK เวอร์ชันหลักนี้ต้องใช้ทรัพยากร Dependency เวอร์ชันต่อไปนี้สำหรับโปรเจ็กต์แอปพลิเคชัน Android
- 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 Plugin 1.9.0
อัปเดตเวอร์ชันปลั๊กอิน Kotlin Gradle ในไฟล์ build.gradle ของโมดูลระดับบนสุดของแอปพลิเคชัน อย่าลืมเพิ่ม org.jetbrains.kotlin:kotlin-gradle-plugin ในทรัพยากร Dependency จากบล็อก 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 ออก ทั้ง 2 ทรัพยากร Dependency ได้รวมเข้ากับ kotlin-stdlib ตั้งแต่ Kotlin 1.8.0 เป็นต้นไป