ปลั๊กอิน Android Gradle 8.3.0 (ก.พ. 2024)

ปลั๊กอิน Android Gradle 8.3.0 เป็นเวอร์ชันสำคัญที่มีฟีเจอร์ใหม่ๆ มากมาย ฟีเจอร์และการปรับปรุงต่างๆ

ความเข้ากันได้

ระดับ API สูงสุดที่ปลั๊กอิน Android Gradle 8.3 รองรับคือ API ระดับ 34 ข้อมูลอื่นๆ เกี่ยวกับความเข้ากันได้มีดังนี้

เวอร์ชันต่ำสุด เวอร์ชันเริ่มต้น หมายเหตุ
เกรเดิล 8.4 8.4 ดูข้อมูลเพิ่มเติมได้ที่การอัปเดต Gradle
เครื่องมือสร้าง SDK 34.0.0 34.0.0 ติดตั้งหรือกำหนดค่าเครื่องมือสร้าง SDK
NDK ไม่มี 25.1.8937393 ติดตั้งหรือกำหนดค่า NDK เวอร์ชันอื่น
JDK 17 17 ดูข้อมูลเพิ่มเติมได้ที่การตั้งค่าเวอร์ชัน JDK

ฟีเจอร์ใหม่ในปลั๊กอิน Android Gradle 8.3 มีดังนี้

การเปิดตัวแพตช์

ต่อไปนี้เป็นรายการแพตช์ใน Android Studio Iguana และปลั๊กอิน Android Gradle 8.3

Android Studio Iguana | 2023.2.1 แพตช์ 2 และ AGP 8.3.2 (เมษายน 2024)

การอัปเดตเล็กน้อยนี้รวมถึง การแก้ไขข้อบกพร่องเหล่านี้

Android Studio Iguana | 2023.2.1 Patch 1 และ AGP 8.3.1 (มีนาคม 2024)

การอัปเดตเล็กน้อยนี้รวมถึง การแก้ไขข้อบกพร่องเหล่านี้

การรองรับแคตตาล็อกเวอร์ชัน Gradle

Android Studio รองรับแบบ TOML แคตตาล็อกเวอร์ชัน Gradle ฟีเจอร์ที่ให้คุณจัดการทรัพยากร Dependency ได้ในพื้นที่ศูนย์กลางเพียงแห่งเดียวและแชร์ ทรัพยากร Dependency ในโมดูลหรือโปรเจ็กต์ต่างๆ ตอนนี้ Android Studio ทำให้ กำหนดค่าแคตตาล็อกเวอร์ชันผ่านคำแนะนำของเครื่องมือแก้ไขและการผสานรวมกับ กล่องโต้ตอบโครงสร้างโครงการ เรียนรู้วิธีการ ตั้งค่าและกำหนดค่าแคตตาล็อกเวอร์ชัน Gradle หรือวิธีการ ย้ายข้อมูลบิลด์ไปยังแคตตาล็อกเวอร์ชัน

การเติมโค้ดและการนำทาง

Android Studio มีการเติมโค้ดเมื่อคุณแก้ไขแคตตาล็อกเวอร์ชันใน รูปแบบไฟล์ TOML หรือเพิ่มทรัพยากร Dependency จากแคตตาล็อกเวอร์ชันลงในบิลด์ หากต้องการใช้การเติมโค้ด ให้กด Ctrl+Space (Command+Space ใน macOS) นอกจากนี้ คุณยังไปยังส่วนต่างๆ ได้อย่างรวดเร็วจาก การอ้างอิงทรัพยากร Dependency ในไฟล์ build.gradle ของแอปไปยังที่ที่มีการประกาศไว้ ในแคตตาล็อกเวอร์ชันโดยการกด Ctrl+b (Command+b ใน macOS)

การเติมโค้ดเมื่อเพิ่มทรัพยากร Dependency

การผสานรวมกับกล่องโต้ตอบโครงสร้างโปรเจ็กต์

หากโปรเจ็กต์ของคุณใช้แคตตาล็อกเวอร์ชันที่กำหนดไว้ในรูปแบบไฟล์ TOML คุณจะดำเนินการต่อไปนี้ได้ แก้ไขตัวแปรที่คุณกำหนดไว้ผ่านกล่องโต้ตอบโครงสร้างของโครงการ มุมมองตัวแปร (ไฟล์ > โครงสร้างโปรเจ็กต์ > ตัวแปร) ใน Android Studio สำหรับแคตตาล็อกเวอร์ชันแต่ละรายการจะมีเมนูแบบเลื่อนลงที่แสดงตัวแปรจาก แคตตาล็อกดังกล่าว หากต้องการแก้ไขตัวแปร ให้คลิกค่าและเขียนทับตัวแปร เมื่อคุณ บันทึกการเปลี่ยนแปลงเหล่านี้ จากนั้นไฟล์ TOML จะได้รับการอัปเดตตามนั้น

ตัวแปรจากแคตตาล็อกเวอร์ชันในกล่องโต้ตอบโครงสร้างโปรเจ็กต์

คุณสามารถอัปเดตทรัพยากร Dependency ในกล่องโต้ตอบโครงสร้างโปรเจ็กต์ได้ด้วย มุมมองการขึ้นต่อกัน (ไฟล์ > โครงสร้างของโปรเจ็กต์ > การขึ้นต่อกัน) เพื่ออัปเดต โดยใช้กล่องโต้ตอบโครงสร้างโครงการ ไปที่โมดูลและ ทรัพยากร Dependency ที่ต้องการแก้ไข แล้วอัปเดตช่องเวอร์ชันที่ขอ เมื่อบันทึกการเปลี่ยนแปลงเหล่านี้ ไฟล์ TOML จะได้รับการอัปเดตตามนั้น โปรดทราบว่าหาก เวอร์ชันของทรัพยากร Dependency ถูกกำหนดโดยใช้ตัวแปร กำลังอัปเดตเวอร์ชัน โดยตรงด้วยวิธีนี้จะแทนที่ตัวแปรด้วยค่าฮาร์ดโค้ด โปรดทราบ การนำทรัพยากร Dependency ออกจากไฟล์บิลด์ ไม่ว่าคุณจะใช้โปรเจ็กต์ กล่องโต้ตอบโครงสร้างหรือไม่ไม่นำการอ้างอิงออกจากเวอร์ชัน แคตตาล็อก

ทรัพยากร Dependency จากแคตตาล็อกเวอร์ชันในกล่องโต้ตอบโครงสร้างโปรเจ็กต์

ปัญหาที่ทราบและข้อจำกัด

ปัญหาที่ทราบหรือข้อจำกัดของแคตตาล็อกเวอร์ชัน Gradle มีดังนี้ ใน Android Studio ได้

  • เกิดข้อผิดพลาดในการไฮไลต์การประกาศชื่อแทนปลั๊กอินในไฟล์สคริปต์ Kotlin เมื่อคุณทำดังนี้ เพิ่มการประกาศปลั๊กอินของแบบฟอร์ม alias(libs.plugins.example) ซึ่งเป็นเครื่องมือแก้ไข เพิ่มเส้นใต้สีแดงในส่วน libs ซึ่งเป็นปัญหาที่ทราบใน Gradle เวอร์ชัน 8.0 และต่ำกว่า รวมถึงจะได้รับการแก้ไขใน Gradle เวอร์ชันถัดไป

  • Android Studio รองรับเฉพาะแคตตาล็อกเวอร์ชันในรูปแบบ TOML: ขณะนี้ การเติมโค้ด Android Studio, การนำทาง และกล่องโต้ตอบโครงสร้างของโปรเจ็กต์ การสนับสนุนมีให้เฉพาะสำหรับแคตตาล็อกเวอร์ชันที่กำหนดไว้ในไฟล์ TOML เท่านั้น อย่างไรก็ตาม คุณยังสามารถเพิ่มแคตตาล็อกเวอร์ชันได้โดยตรงใน settings.gradle และใช้ทรัพยากร Dependency ของไฟล์ดังกล่าวในโปรเจ็กต์ของคุณ

  • ไม่รองรับการนำทางสำหรับไฟล์บิลด์ KTS: ไปยังทรัพยากร Dependency คำจำกัดความในแคตตาล็อกเวอร์ชันโดยใช้ Control + คลิก ระบบยังไม่รองรับ (Command+คลิกใน macOS) สำหรับไฟล์บิลด์ ที่เขียนโดยใช้สคริปต์ Kotlin

  • Firebase Assistant เพิ่มทรัพยากร Dependency โดยตรงในสคริปต์บิลด์ดังนี้ Firebase Assistant เพิ่มการพึ่งพาโดยตรงลงในสคริปต์บิลด์แทนที่จะเพิ่มผ่านเวอร์ชัน แคตตาล็อก

  • "ดูการใช้งาน" ไม่รองรับฟังก์ชันการทำงาน: การค้นหาการใช้งานแคตตาล็อกเวอร์ชัน ยังไม่มีการสนับสนุนตัวแปรในไฟล์บิลด์อื่นๆ ไม่ว่าไฟล์บิลด์จะเป็น ใน KTS หรือ Groovy นั่นคือการใช้ Control+คลิก (Command+คลิก macOS) ที่คําจํากัดความของตัวแปรในเวอร์ชัน ไม่ได้นำตัวแปรนี้ไปใช้ในไฟล์บิลด์

  • กล่องโต้ตอบโครงสร้างโปรเจ็กต์ใน Android Studio แสดงแคตตาล็อกหลายรายการ หากไฟล์อยู่ในโฟลเดอร์ราก gradle แต่ไม่แสดงแคตตาล็อกสำหรับ บิลด์แบบผสม เช่น หากคุณมีไฟล์แคตตาล็อก 2 ไฟล์ โดยไฟล์แรกสำหรับแอปและอีกไฟล์สำหรับ บิลด์แบบผสม กล่องโต้ตอบโครงสร้างโปรเจ็กต์จะแสดงเฉพาะไฟล์แคตตาล็อกแอป คุณสามารถใช้บิลด์แบบผสมได้ แต่ต้องแก้ไขไฟล์ TOML ของเวอร์ชันโดยตรง

ข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับ SDK: ปัญหาเกี่ยวกับนโยบาย

Android Studio แสดงคำเตือนของ Lint ใน build.gradle.kts และ build.gradle และใน กล่องโต้ตอบโครงสร้างโครงการสำหรับ SDK สาธารณะที่มีการละเมิดนโยบายของ Play ในดัชนี SDK ของ Google Play คุณควรอัปเดต ทรัพยากร Dependency ที่ละเมิดนโยบายของ Play เนื่องจากการละเมิดเหล่านี้อาจทำให้ ไม่เผยแพร่แอปไปยัง Google Play Console ได้ในอนาคต นโยบาย ข้อมูลเพิ่มเติมเกี่ยวกับคำเตือนการละเมิด คำเตือนเกี่ยวกับเวอร์ชันที่ล้าสมัย ที่แสดงโดย Android Studio

การรองรับเวอร์ชัน compileSdk ของ Android Studio

Android Studio จะแสดงคำเตือนหากโปรเจ็กต์ของคุณใช้ compileSdk ที่ไม่ใช่ รองรับโดย Android Studio เวอร์ชันปัจจุบัน และหากมี ขอแนะนำให้เปลี่ยนไปใช้ Android Studio เวอร์ชันที่รองรับ compileSdk ที่โปรเจ็กต์ใช้อยู่ โปรดทราบว่า การอัปเกรด Android Studio อาจทำให้คุณต้องอัปเกรด AGP ด้วย AGP ยังแสดงคำเตือนในหน้าต่างเครื่องมือสร้างหาก compileSdk AGP เวอร์ชันปัจจุบันไม่รองรับโปรเจ็กต์ของคุณ

การเปลี่ยนแปลงลักษณะการทำงานของ Lint

เริ่มจากปลั๊กอิน Android Gradle 8.3.0-alpha02 เมื่อเรียกใช้ Lint ใน ทำงานวิเคราะห์ Lint แยกต่างหากสำหรับงานหลักและการทดสอบ ของโมดูลนี้ เหตุผลของการเปลี่ยนแปลงนี้คือเพื่อปรับปรุงประสิทธิภาพ หากต้องการเปลี่ยนกลับไปใช้ลักษณะการทำงานก่อนหน้า ให้ตั้งค่า android.experimental.lint.analysisPerComponent=false ใน gradle.properties

เปิดใช้การย่อทรัพยากรที่แม่นยำโดยค่าเริ่มต้น

การลดขนาดทรัพยากรที่แม่นยำ ซึ่งจะนำรายการที่ไม่ได้ใช้ออกจาก resources.arsc ไฟล์และกำจัดไฟล์ทรัพยากรที่ไม่ได้ใช้จะเปิดอยู่โดยค่าเริ่มต้น เมื่อเปิดใช้การย่อขนาดนี้ ตารางทรัพยากรจะลดลงและมีเพียง รายการโฟลเดอร์ res รายการที่อ้างอิงรวมอยู่ใน APK

หากต้องการปิดการย่อทรัพยากรอย่างแม่นยำ ให้ตั้งค่า android.enableNewResourceShrinker.preciseShrinking ให้ false ใน gradle.properties ของโครงการ