ปลั๊กอิน 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 และ AGP 8.4.2 (มิถุนายน 2024)

การอัปเดตความปลอดภัยที่สำคัญ: ช่องโหว่ด้านความปลอดภัย ใน ปลั๊กอิน GitHub ที่มีใน Android Studio Iguana | 2023.2.1 ขึ้นไปอาจทำให้โทเค็นการเข้าถึง รั่วไหลไปยังบุคคลที่ไม่ได้รับอนุญาต

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

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

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

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

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

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

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

Android Studio Jellyfish | แพตช์ 1 ของ 2023.3.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.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 ขึ้นต่อกันกับไลบรารีที่มีช่องโหว่ด้านความปลอดภัยที่ทราบแล้ว
เทมเพลตกิจกรรมที่เลือกต้องใช้โปรเจ็กต์ที่มีการอ้างอิง androidx.*
AGP Upgrade Assistent errouneously removes consumerProguardFiles from module
ผู้ช่วยการอัปเกรด AGP โหลดไม่สิ้นสุด
SourceDirectories#static ไม่ควรขึ้นอยู่กับงาน GenerateBuildConfig
ตัวอย่างการเขียนไม่สามารถแก้ไขคลาสจากทรัพยากร Dependency แบบทรานซิทีฟได้
AGP 8.3 ทำให้ zipApksFor Task ทำงานไม่ได้
อาร์ติแฟกต์ AndroidX Desktop ที่แพ็กเกจใน Android APK
Lint
GradleModelMocker ของเฟรมเวิร์กการทดสอบ Lint ไม่อนุญาตให้ตั้งค่าเวอร์ชันของไลบรารี
Lint K2 UAST: UCallableReferenceExpression รายงาน qualifierType ที่ไม่ถูกต้อง
Lint false positive with useK2Uast=true with overloaded functions
[BuildTool/Lint] ตรวจสอบพร็อพเพอร์ตี้เครื่องมือสร้าง ChecksSdkIntAtLeast
การผสานรวม Lint
Lint ไม่สามารถแยกความกำกวมของ Dependency ของ KMP

ปลั๊กอิน Android Gradle 8.4.1

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

ปลั๊กอิน Android Gradle 8.4.2

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