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

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

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

ระดับ API สูงสุดที่พลิแกน Gradle ของ Android เวอร์ชัน 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)

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

การแก้ไข: Jetbrains ได้แก้ไขปัญหาในผลิตภัณฑ์แพลตฟอร์ม IntelliJ แล้ว และตอนนี้การแก้ไขพร้อมใช้งานใน Android Studio Jellyfish | 2023.3.1 แพตช์ 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 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 โดยไม่มีการบีบอัด ซึ่งหมายความว่าเครื่องมือบีบอัดโค้ดจะไม่ทำงานกับไฟล์ดังกล่าว

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

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

ปลั๊กอิน Android Gradle 8.4.0

ปัญหาที่แก้ไขแล้ว
ปลั๊กอิน Android Gradle
ปรับปรุงข้อความแสดงข้อผิดพลาดเกี่ยวกับสาเหตุที่ไม่สามารถใช้ตัวเลือก `--release` สำหรับ JavaCompile
ปิดใช้การแคช MergeSourceSetFolders โดยใช้ @DoNotCacheByDefault
ตั้งค่า JaCoCo เวอร์ชันใน AGP 8.2.0 ไม่ได้
DynamicFeatureBuildType ไม่มี isDebuggable
คลาสไลบรารีที่ผ่านการ Minify ไม่ได้รับการจัดทําให้เผยแพร่อย่างถูกต้องสําหรับการใช้งานระหว่างโปรเจ็กต์
ระบุ Variant#sources API ที่ไม่รวมไฟล์ที่สร้างขึ้น
โมเดล AGP ไม่มีแพลตฟอร์ม Java ที่ต้องใช้ร่วมกันในโปรเจ็กต์
ExtractAarTransform จะสร้าง classes.jar ที่ไม่สามารถผลิตซ้ำได้สำหรับ aars ที่ไม่มี classes.jar
อนุญาตให้กําหนดค่า sourceInformation จาก ComposeOptions
ไม่พบฟิลด์ sdk_runtime ในข้อความ android.bundle.DeviceSpec
รองรับ compileOnlyApi
R8 ดำเนินการในโมดูลไลบรารีไม่สำเร็จเมื่อปิดใช้การประมวลผลทรัพยากร
เพิ่มความสามารถในการเปลี่ยนชื่ออาร์ติแฟกต์ระหว่างการเปลี่ยนรูปแบบ
การเพิ่มเอาต์พุตของงานเป็น srcDir ของ sourceSets.androidMain.resources จะไม่สร้างการพึ่งพางาน
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 อยู่นอกขอบเขตของความยาว 0
ปัญหาการจัดการอินพุตที่เพิ่มขึ้นของ MergeJavaResourcesTask
AGP 8.3.0-alpha02 ขึ้นต่อกันกับไลบรารีที่มีช่องโหว่ด้านความปลอดภัยที่ทราบแล้ว
เทมเพลตกิจกรรมที่เลือกต้องใช้โปรเจ็กต์ที่มี androidx.*
เครื่องมือช่วยอัปเกรด AGP นำ consumerProguardFiles ออกจากโมดูลอย่างไม่ถูกต้อง
ผู้ช่วยการอัปเกรด AGP โหลดไม่หยุด
SourceDirectories#static ไม่ควรขึ้นอยู่กับงาน GenerateBuildConfig
ตัวอย่างการคอมไพล์ไม่สามารถแก้ไขคลาสจาก Dependency แบบทรานซิทีฟ
AGP 8.3 ทำลาย zipApksFor Task
อาร์ติแฟกต์ AndroidX Desktop ที่แพ็กเกจใน Android APK
Lint
GradleModelMocker ของเฟรมเวิร์กการทดสอบ Lint ไม่อนุญาตให้ตั้งค่าเวอร์ชันไลบรารี
Lint K2 UAST: UCallableReferenceExpression รายงาน qualifierType ที่ไม่ถูกต้อง
Lint ตรวจพบที่ผิดพลาดด้วย useK2Uast=true ที่มีฟังก์ชันที่โอเวอร์โหลด
[BuildTool/Lint] ตรวจสอบพร็อพเพอร์ตี้คอนสตรัคเตอร์ ChecksSdkIntAtLeast
การผสานรวม Lint
Lint แยกความกำกวมเกี่ยวกับข้อกําหนดของ KMP ไม่ได้

ปลั๊กอิน Android Gradle 8.4.1

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

ปลั๊กอิน Android Gradle 8.4.2

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