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

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

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

Kotlin 2.0 มีข้อกำหนดสำหรับเวอร์ชันต่ำสุดและสูงสุดสำหรับเวอร์ชัน Gradle และ Android Gradle Plugin (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 เพื่อช่วยจำกัดการเปลี่ยนแปลงที่อาจทำให้เกิดข้อขัดข้อง ดังนี้

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