ย้ายข้อมูลไปยัง Kotlin 2.0
หากใช้ Consumer SDK สําหรับ Android 3.0 ขึ้นไป คุณต้องอัปเกรดเป็น Kotlin 2.0 หน้านี้จะให้คําแนะนําในการเปลี่ยนไปใช้ Kotlin เวอร์ชันใหม่
ความเข้ากันได้ของ Gradle กับ AGP
Kotlin 2.0 มีข้อกำหนดสำหรับเวอร์ชันขั้นต่ำและสูงสุดสำหรับเวอร์ชัน Gradle และปลั๊กอิน Android Gradle (AGP) ตรวจสอบว่าโปรเจ็กต์เป็นไปตามข้อกำหนดเหล่านี้สำหรับ Kotlin 2.0
เวอร์ชันขั้นต่ำของ AGP สําหรับ Consumer SDK 3.0 ขึ้นไป
Consumer SDK 3.0 ต้องใช้ AGP 7.3 ขึ้นไป
โหมด R8 แบบเต็ม
Consumer SDK เวอร์ชัน 3 ลงมาไม่รองรับโหมด R8 แบบเต็ม คุณต้องปิดใช้โหมด R8 แบบสมบูรณ์อย่างชัดเจนหากแอปพลิเคชันกำหนดเป้าหมายเป็น AGP 8.0 ขึ้นไป
# settings.gradle
android.enableR8.fullMode=false
ความเข้ากันได้ของเวอร์ชัน Kotlin
Kotlin รองรับการทำงานร่วมกับภาษาเวอร์ชันก่อนหน้า 3 เวอร์ชัน ซึ่งหมายความว่าหากคุณใช้ Kotlin 1.7 ขึ้นไปกับ Consumer SDK อยู่แล้ว คุณควรจะอัปเกรดเป็น Kotlin 2.0 ได้โดยไม่ต้องแก้ไขการเปลี่ยนแปลงที่ทำให้เกิดข้อขัดข้องทั้งหมด อย่างไรก็ตาม ความเข้ากันได้ของ Kotlin จะมีผลกับฟีเจอร์ภาษาที่เสถียรเท่านั้น หากคุณใช้ฟีเจอร์อัลฟ่า เบต้า หรือเวอร์ชันทดลองในภาษา Kotlin คุณอาจต้องทำการเปลี่ยนแปลงเพิ่มเติมเมื่ออัปเกรด
Flag ที่เข้ากันได้กับ Kotlin
ดังที่ระบุไว้ในส่วนก่อนหน้า Kotlin รองรับภาษาเวอร์ชันก่อนหน้าได้สูงสุด 3 เวอร์ชันเมื่ออัปเกรด Kotlin มี Flag 2 รายการเพื่อช่วยจำกัดการเปลี่ยนแปลงที่ทำให้เกิดข้อขัดข้อง ดังนี้
language-version X.Y
Flag นี้จะเปลี่ยนการเปลี่ยนแปลงที่ทำให้เกิดข้อขัดข้องกลับเป็นลักษณะการทำงานเดิมของ Kotlin เวอร์ชันก่อนหน้า
ตัวอย่างเช่น หากคุณใช้ Kotlin 1.7 ให้ระบุ [ -
language-version 1.7]
แล้วการเปลี่ยนแปลงที่ทำให้เกิดข้อขัดข้องใหม่จะไม่มีผลอีกต่อไป
android {
kotlinOptions {
languageVersion = '1.7'
}
}
api-version X.Y
Flag นี้จะป้องกันไม่ให้มีการใช้ API ใหม่ก่อนที่โค้ดดาวน์สตรีมที่เกี่ยวข้องจะพร้อมที่จะรวม Kotlin 2.0
android {
kotlinOptions {
apiVersion = '1.7'
}
}
แนวทางที่มุ่งเน้นมากขึ้น
นอกจากการใช้ Flag ที่เข้ากันได้ของ Kotlin แล้ว เราขอแนะนำให้อ่านหมายเหตุประจำรุ่นของ Kotlin และเลือกลักษณะการทำงานที่ต้องการเก็บไว้จากเวอร์ชันที่คุณอัปเกรด Kotlin มีรายการการเปลี่ยนแปลงที่ทำให้เกิดข้อขัดข้องและ Flag ที่ตั้งค่าเพื่อคงลักษณะการทำงานเดิมไว้ในคู่มือความเข้ากันได้สำหรับแต่ละเวอร์ชัน