ปลั๊กอิน Android Gradle 8.4.0 (เม.ย. 2024)

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

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

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

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

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

เวอร์ชันแพตช์

รายการต่อไปนี้คือรายการเวอร์ชันแพตช์ใน Android Studio Jellyfish และปลั๊กอิน Android Gradle เวอร์ชัน 8.4

Android Studio Jellyfish | 2023.3.1 แพตช์ 2 และ AGP 8.4.2 (มิถุนายน 2024)

การอัปเดตด้านความปลอดภัยที่สำคัญ: A ช่องโหว่ด้านความปลอดภัย in the ปลั๊กอิน GitHub available in Android Studio Iguana | 2023.2.1 and higher could expose access tokens to unauthorized parties.

การแก้ไข: Jetbrains ได้ แก้ไขปัญหาในผลิตภัณฑ์แพลตฟอร์ม IntelliJ แล้ว, และการแก้ไขนี้พร้อมใช้งานแล้วใน Android Studio Jellyfish | 2023.3.1 แพตช์ 2 (2023.3.1.20)

หากคุณมีบิลด์ Android Studio ใน ช่องทางเสถียรอยู่แล้ว คุณสามารถ รับการอัปเดตได้โดยคลิก ความช่วยเหลือ > ตรวจสอบการอัปเดต (หรือ Android Studio > ตรวจสอบการอัปเดต ใน macOS) หากไม่มี ให้ ดาวน์โหลดบิลด์เสถียรล่าสุด.

นอกจากนี้ หากคุณใช้ฟังก์ชันการทำงานของคำขอรับการผสานรวม (Pull Request) ของ GitHub ใน IDE อย่างสม่ำเสมอ เราขอแนะนำอย่างยิ่งให้คุณเพิกถอนโทเค็น GitHub ที่ปลั๊กอินใช้อยู่ เนื่องจากปลั๊กอินสามารถใช้การผสานรวม OAuth หรือโทเค็นเพื่อการเข้าถึงแบบส่วนตัว (PAT) โปรดตรวจสอบทั้ง 2 อย่างและเพิกถอนตามความจำเป็นโดยทำดังนี้

  • หากต้องการเพิกถอนสิทธิ์เข้าถึงสำหรับการผสานรวม OAuth ให้ไปที่ แอปพลิเคชัน > แอป OAuth ที่ได้รับอนุญาต แล้วเพิกถอนสิทธิ์เข้าถึงสำหรับโทเค็น JetBrains IDE Integration
  • หากต้องการเพิกถอนสิทธิ์เข้าถึงสำหรับ PAT ให้ไปที่ โทเค็นเพื่อการเข้าถึงแบบส่วนตัว แล้วลบโทเค็นที่ออกให้สำหรับปลั๊กอิน GitHub ชื่อโทเค็นเริ่มต้นคือ IntelliJ IDEA GitHub integration plugin แต่คุณอาจใช้ ชื่อที่กำหนดเอง

หลังจากเพิกถอนสิทธิ์เข้าถึงสำหรับโทเค็นแล้ว คุณต้องตั้งค่าปลั๊กอินอีกครั้ง เพื่อให้ฟีเจอร์ทั้งหมดของปลั๊กอิน รวมถึงการดำเนินการ Git กลับมาทำงานได้อีกครั้ง

เราขออภัยในความไม่สะดวกและขอให้ผู้ใช้ทุกคนอัปเดตทันที เพื่อปกป้องโค้ดและข้อมูล

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

Android Studio Jellyfish | 2023.3.1 แพตช์ 1 และ AGP 8.4.1 (พฤษภาคม 2024)

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

คลาสของไลบรารีถูกลดขนาด

ตั้งแต่ปลั๊กอิน Android Gradle เวอร์ชัน 8.4 เป็นต้นไป หากมีการลดขนาดโปรเจ็กต์ไลบรารี Android ระบบจะเผยแพร่คลาสของโปรแกรมที่ลดขนาดแล้วสำหรับการเผยแพร่ระหว่างโปรเจ็กต์ ซึ่งหมายความว่าหากแอปขึ้นต่อกันกับเวอร์ชันที่ลดขนาดแล้วของโปรเจ็กต์ย่อยไลบรารี Android, APK จะมีคลาสของไลบรารี Android ที่ลดขนาดแล้ว คุณอาจต้อง ปรับ กฎการเก็บรักษาไลบรารี ในกรณีที่ คลาสบางคลาสหายไปใน APK

ในกรณีที่คุณสร้างและเผยแพร่ AAR, JAR ในเครื่องที่ไลบรารี ขึ้นต่อกันจะรวมอยู่ใน AAR ที่ไม่ได้ลดขนาด ซึ่งหมายความว่า เครื่องมือลดขนาดโค้ดจะไม่ทำงานกับ JAR เหล่านั้น

หากต้องการเปลี่ยนกลับไปใช้ลักษณะการทำงานก่อนหน้า ให้ตั้งค่า android.disableMinifyLocalDependenciesForLibraries ในไฟล์gradle.properties แล้ว รายงานข้อบกพร่อง AGP เวอร์ชันในอนาคตจะนำแฟล็กนี้ออก

ปัญหาที่แก้ไขแล้ว

ปลั๊กอิน Android Gradle เวอร์ชัน 8.4.2

ปัญหาที่แก้ไขแล้ว
ปลั๊กอิน Android Gradle
ดูเหมือนว่า AGP 8.4 จะทำให้การดาวน์โหลด GMD ใน CI หยุดทำงาน

ปลั๊กอิน Android Gradle เวอร์ชัน 8.4.1

ปัญหาที่แก้ไขแล้ว
ปลั๊กอิน Android Gradle
อนุญาตให้ระงับคำเตือนเกี่ยวกับการเลิกใช้งานการรองรับการกำหนดเป้าหมายเป็น Java 8 ของ JDK 21
Dexer (D8)
java.lang.VerifyError: ผู้ตรวจสอบปฏิเสธคลาส
ข้อผิดพลาดในการแปลงรูปแบบ R8 เวอร์ชันใหม่หลังจากทำให้โค้ดอ่านยาก
บิลด์ระดับกลางอาจไม่มีเนื้อหาแบบสังเคราะห์ส่วนกลางที่สมบูรณ์สำหรับ Stub

ปลั๊กอิน Android Gradle เวอร์ชัน 8.4.0

ปัญหาที่แก้ไขแล้ว
ปลั๊กอิน Android Gradle
ปรับปรุงข้อความแสดงข้อผิดพลาดเกี่ยวกับสาเหตุที่ใช้ตัวเลือก `--release` กับ JavaCompile ไม่ได้
ปิดใช้การแคชของ MergeSourceSetFolders โดยใช้ @DoNotCacheByDefault
ตั้งค่าเวอร์ชัน JaCoCo ใน AGP 8.2.0 ไม่ได้
DynamicFeatureBuildType ไม่มี isDebuggable
ระบบเผยแพร่คลาสของไลบรารีที่ลดขนาดแล้วไม่ถูกต้องสำหรับการใช้งานระหว่างโปรเจ็กต์
จัดเตรียม API Variant#sources ที่ยกเว้นไฟล์ที่สร้างขึ้น
โมเดล AGP ไม่มีทรัพยากร Dependency ของโปรเจ็กต์ Java-Platform
ExtractAarTransform สร้าง classes.jar ที่ไม่สามารถทำซ้ำได้สำหรับ AAR ที่ไม่มี classes.jar
อนุญาตให้กำหนดค่า sourceInformation จาก ComposeOptions
ไม่พบฟิลด์ sdk_runtime ในข้อความ android.bundle.DeviceSpec
รองรับ compileOnlyApi
R8 ล้มเหลวในโมดูลไลบรารีเมื่อปิดใช้การประมวลผลทรัพยากร
เพิ่มความสามารถในการเปลี่ยนชื่ออาร์ติแฟกต์ระหว่างการแปลง
การเพิ่มเอาต์พุตของงานเป็น srcDir ของ sourceSets.androidMain.resources ไม่ได้สร้างทรัพยากร Dependency ของงาน
AndroidPluginVersion.toString() ไม่มีเลข 0 นำหน้า
Artifacts.add(FileSystemLocation) ควรมีข้อจำกัดมากขึ้น
AGP 8.3.0-alpha11 สร้าง APK เวอร์ชันที่ใช้งานจริงซึ่งหยุดทำงานเมื่อเริ่มต้นด้วย android.content.res.Resources$NotFoundException
งานติดตั้งปลั๊กอิน Android Gradle เวอร์ชัน 8.2.0 ล้มเหลวในโปรเจ็กต์ที่ใช้ฟีเจอร์แบบไดนามิก
การคอมไพล์ AIDL ล้มเหลวด้วย IndexOutOfBoundsException: Index 0 out of bounds for length 0
ปัญหาการจัดการอินพุตที่เพิ่มขึ้นของ MergeJavaResourcesTask
AGP 8.3.0-alpha02 ขึ้นต่อกันกับไลบรารีที่มีช่องโหว่ด้านความปลอดภัยที่ทราบ
เทมเพลตกิจกรรมที่เลือกต้องใช้โปรเจ็กต์ที่มีทรัพยากร Dependency androidx.*
AGP Upgrade Assistant นำ consumerProguardFiles ออกจากโมดูลอย่างไม่ถูกต้อง
AGP Upgrade Assistant โหลดอย่างไม่มีที่สิ้นสุด
SourceDirectories#static ไม่ควรขึ้นต่อกันกับงาน GenerateBuildConfig
ตัวอย่าง Compose ไม่สามารถแก้ไขคลาสจากทรัพยากร Dependency แบบทรานซิทีฟ
AGP 8.3 ทำให้งาน zipApksFor หยุดทำงาน
อาร์ติแฟกต์ AndroidX Desktop ที่แพ็กเกจไว้ใน Android APK
เครื่องมือวิเคราะห์ซอร์สโค้ด
GradleModelMocker ของเฟรมเวิร์กการทดสอบเครื่องมือวิเคราะห์ซอร์สโค้ดไม่อนุญาตให้ตั้งค่าเวอร์ชันไลบรารี
เครื่องมือวิเคราะห์ซอร์สโค้ด K2 UAST: UCallableReferenceExpression รายงาน qualifierType ไม่ถูกต้อง
ผลบวกลวงของเครื่องมือวิเคราะห์ซอร์สโค้ดเมื่อ useK2Uast=true กับฟังก์ชันที่โอเวอร์โหลด
[BuildTool/เครื่องมือวิเคราะห์ซอร์สโค้ด] พร็อพเพอร์ตี้เครื่องมือสร้าง ChecksSdkIntAtLeast
การผสานรวมเครื่องมือวิเคราะห์ซอร์สโค้ด
เครื่องมือวิเคราะห์ซอร์สโค้ดไม่สามารถแยกความกำกวมของทรัพยากร Dependency ของ KMP