ย้ายข้อมูลไปใช้ 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 คุณอาจต้องทำการเปลี่ยนแปลงเพิ่มเติมเมื่ออัปเกรด
แฟล็กความเข้ากันได้ของ Kotlin
ดังที่ระบุไว้ในส่วนก่อนหน้า Kotlin รองรับภาษาเวอร์ชันก่อนหน้าสูงสุด 3 เวอร์ชันเมื่ออัปเกรด Kotlin มีแฟล็ก 2 รายการเพื่อช่วยจำกัด การเปลี่ยนแปลงที่ทำให้เกิดข้อผิดพลาด:
language-version X.Y
แฟล็กนี้จะเปลี่ยนการเปลี่ยนแปลงที่ทำให้เกิดข้อผิดพลาดกลับไปเป็นลักษณะการทำงานของ Kotlin เวอร์ชันก่อนหน้า
ตัวอย่างเช่น หากคุณใช้ Kotlin 1.7 คุณระบุ [ -
language-version 1.7] ได้ และการเปลี่ยนแปลงที่ทำให้เกิดข้อผิดพลาดใหม่จะไม่ส่งผลอีกต่อไป
android {
kotlinOptions {
languageVersion = '1.7'
}
}
api-version X.Y
แฟล็กนี้จะป้องกันไม่ให้ใช้ API ใหม่ก่อนที่โค้ดดาวน์สตรีมที่ขึ้นอยู่กับ API นั้นพร้อมที่จะรวม Kotlin 2.0
android {
kotlinOptions {
apiVersion = '1.7'
}
}
แนวทางที่ตรงเป้ามากขึ้น
นอกจากการใช้แฟล็กความเข้ากันได้ของ Kotlin แล้ว เราขอแนะนำให้คุณอ่านบันทึกประจำรุ่นของ Kotlin และเลือกลักษณะการทำงานที่ต้องการเก็บไว้จากเวอร์ชันที่คุณอัปเกรด Kotlin มีรายการการเปลี่ยนแปลงที่ทำให้เกิดข้อผิดพลาดและแฟล็กที่ตั้งค่าได้เพื่อเก็บลักษณะการทำงานเดิมไว้ในคู่มือความเข้ากันได้สำหรับแต่ละเวอร์ชัน ดังนี้