ย้ายข้อมูลไปยัง Kotlin 2.0

หากใช้ Navigation SDK สําหรับ Android 6.0 ขึ้นไป คุณต้องอัปเกรดเป็น Kotlin 2.0 หน้านี้ให้คําแนะนําในการเปลี่ยนไปใช้ Kotlin เวอร์ชันใหม่

ความเข้ากันได้ของ Gradle กับ AGP

Kotlin 2.0 มีข้อกำหนดสำหรับเวอร์ชันขั้นต่ำและสูงสุดของ Gradle และปลั๊กอิน Android Gradle (AGP) ตรวจสอบว่าโปรเจ็กต์เป็นไปตามข้อกำหนดเหล่านี้สำหรับ Kotlin 2.0

เวอร์ชัน AGP ขั้นต่ำสําหรับ Navigation SDK 6.0 ขึ้นไป

เราขอแนะนําให้ใช้ AGP 7.3 ขึ้นไปกับ Navigation SDK 6.0 เราได้ยืนยัน SDK กับ AGP 8.3 และ Gradle 8.4 แล้ว และ SDK ดังกล่าวเข้ากันได้กับโหมดเต็มรูปแบบของ R8

ความเข้ากันได้ของเวอร์ชัน Kotlin

Kotlin รองรับการทำงานร่วมกับภาษาเวอร์ชันก่อนหน้า 3 เวอร์ชัน ซึ่งหมายความว่าหากคุณใช้ Kotlin 1.7 ขึ้นไปกับ Navigation SDK อยู่แล้ว คุณควรอัปเกรดเป็น Kotlin 2.0 ได้โดยไม่ต้องแก้ไขการเปลี่ยนแปลงที่ทำให้เกิดข้อขัดข้องทั้งหมด อย่างไรก็ตาม ฟีเจอร์นี้จะใช้ได้กับฟีเจอร์ภาษาที่เสถียรเท่านั้น หากคุณใช้ฟีเจอร์เวอร์ชันอัลฟ่า เบต้า หรือเวอร์ชันทดลองในภาษา Kotlin คุณอาจต้องทำการเปลี่ยนแปลงเพิ่มเติมเมื่ออัปเกรด

ลดความซับซ้อนของการเปลี่ยนผ่าน: แฟล็กความเข้ากันได้ของ Kotlin

ตามที่ระบุไว้ในส่วนก่อนหน้า Kotlin รองรับภาษาก่อนหน้าสูงสุด 3 เวอร์ชันเมื่ออัปเกรด Kotlin มี 2 Flag เพื่อช่วยจำกัดการเปลี่ยนแปลงที่อาจทำให้เกิดข้อขัดข้อง ดังนี้

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 ที่คุณตั้งค่าให้คงลักษณะการทำงานเดิมไว้ในคู่มือความเข้ากันได้ของแต่ละเวอร์ชันได้ ดังนี้