ปลั๊กอิน Android Gradle 9.2.0 (เมษายน 2026)

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

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

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

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

รายงานความครอบคลุมและการทดสอบแบบรวม

AGP 9.2.0-alpha07 มีงานที่สร้างแดชบอร์ด HTML ซึ่งรวบรวมผลการทดสอบและความครอบคลุมจากการทดสอบประเภทต่างๆ (หน่วยและการวัดคุม) โมดูล และตัวแปรบิลด์ เพื่อให้ภาพรวมที่ครอบคลุมในแดชบอร์ดเดียว ดูข้อมูลเพิ่มเติมได้ที่สร้างรายงานการครอบคลุมของโค้ดแบบรวม และดูรายงานการทดสอบแบบรวม

การเปลี่ยนแปลง R8

การเปลี่ยนแปลง R8 ต่อไปนี้รวมอยู่ใน AGP 9.2.0

-keepattributes ความหมายที่เข้มงวดมากขึ้นสำหรับการเก็บคำอธิบายประกอบที่มองไม่เห็นในรันไทม์

อ่านคำอธิบายประกอบที่มองไม่เห็นรันไทม์ในรันไทม์ไม่ได้ ดังนั้น D8 จึง นำคำอธิบายประกอบที่มองไม่เห็นในรันไทม์ออกโดยไม่มีเงื่อนไข และไม่มีตัวเลือกในการเปลี่ยนแปลง การดำเนินการนี้

R8 รองรับการส่งออกคำอธิบายประกอบที่มองไม่เห็นในรันไทม์เพื่อให้เข้ากันได้กับ ProGuard แต่เมื่อคอมไพล์เป็น DEX โดยทั่วไปแล้ว ไม่ควรเก็บคำอธิบายประกอบที่มองไม่เห็นรันไทม์ไว้ อย่างไรก็ตาม แนวทางปฏิบัติทั่วไปคือการรวมกฎที่สะดวก -keepattributes *Annotation* (ทั้งทางตรงและทางอ้อมจากกฎการเก็บรักษาสำหรับผู้บริโภค) ไว้เพื่อให้ R8 เก็บคำอธิบายประกอบที่มองเห็นได้ในรันไทม์ แต่การดำเนินการนี้จะทำให้คำอธิบายประกอบที่มองไม่เห็นในรันไทม์ยังคงอยู่ด้วย

เพื่อลดปัญหานี้และให้ตรงกับลักษณะการทำงานของ D8 มากขึ้น -keepattributes รูปแบบที่มีไวลด์การ์ดจะไม่ตรงกับ RuntimeInvisibleAnnotations RuntimeInvisibleParameterAnnotations และ RuntimeInvisibleTypeAnnotations อีกต่อไป ด้วยเหตุนี้ ระบบจะเก็บคำอธิบายประกอบที่มองไม่เห็นในรันไทม์ไว้ก็ต่อเมื่อมีการกล่าวถึงชื่อแอตทริบิวต์อย่างชัดเจนโดยไม่มีอักขระไวด์การ์ด

ตอนนี้ไม่มีกฎต่อไปนี้ที่จะทำให้คำอธิบายประกอบที่มองเห็นได้ในรันไทม์ยังคงมองเห็นได้

-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*

หากต้องการซ่อนคำอธิบายประกอบที่รันไทม์ ให้ใช้กฎต่อไปนี้

-keepattributes RuntimeInvisibleAnnotations,
                RuntimeInvisibleParameterAnnotations,
                RuntimeInvisibleTypeAnnotations

การรองรับชื่อที่ปฏิเสธในกฎของสมาชิก

เราได้ขยายภาษาการกำหนดค่าเพื่อให้คุณสามารถจับคู่กับ รูปแบบชื่อสมาชิกที่ปฏิเสธได้แล้ว

เช่น หากต้องการจับคู่เมธอดทั้งหมดที่ไม่ได้ลงท้ายด้วย "ForTesting" ให้ใช้กฎต่อไปนี้

-keepclassmembers class com.example.MyClass {
  *** !*ForTesting(...);
}

นอกจากนี้ คุณยังปฏิเสธรูปแบบชื่อสมาชิกในเงื่อนไขเบื้องต้นของ-if กฎได้ด้วย หากรูปแบบชื่อสมาชิกที่ปฏิเสธมีไวลด์การ์ด คุณจะอ้างอิงไวลด์การ์ดดังกล่าวใน-if กฎที่ตามมาไม่ได้

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

ปลั๊กอิน Android Gradle 9.2.0-alpha04

ปัญหาที่แก้ไขแล้ว
ปลั๊กอิน Android Gradle
การเปลี่ยนชื่อ APK โดยใช้ AGP DSL ใหม่
ข้อผิดพลาดเมื่อเข้าถึง (แต่ไม่ได้ประเมิน) bootClasspath IllegalStateException: targetCompatibility ยังไม่เสร็จสมบูรณ์

ปลั๊กอิน Android Gradle 9.2.0-alpha03

ปัญหาที่แก้ไขแล้ว
ปลั๊กอิน Android Gradle
JdkImageTransform ล้มเหลวใน JDK 26
เข้ารหัส minAgpVersion ในข้อมูลเมตา AAR ใน AGP 10.0 โดยอัตโนมัติ
เครื่องมือวิเคราะห์ซอร์สโค้ด
หน้าต่างบริบทที่ถูกตัดทอนในรายงาน Lint SARIF เนื่องจากตัวชี้ออฟเซ็ตติดอยู่ใน `SarifReporter.kt`
ไคลเอ็นต์ Lint Gradle ไม่มีฟีเจอร์สำคัญที่ทำให้เชื่อถือไม่ได้
การผสานรวมเครื่องมือวิเคราะห์ซอร์สโค้ด
งาน Lint Gradle ไม่สนใจแฟล็ก --quiet

ปลั๊กอิน Android Gradle 9.2.0-alpha02

ปัญหาที่แก้ไขแล้ว
ปลั๊กอิน Android Gradle
AGP 9.0 ไม่มี androidComponents.onVariant ที่เทียบเท่าสำหรับ applicationVariants.all.mergeAssetsProvider
ไฟล์ `*.xml.flat` มีเส้นทางไฟล์สัมบูรณ์
ไม่ได้ลงทะเบียน R8D8ThreadPoolBuildService
การผสานรวมเครื่องมือวิเคราะห์ซอร์สโค้ด
เครื่องมือวิเคราะห์ซอร์สโค้ด Android ล้มเหลวเนื่องจากการตรวจสอบที่กำหนดเองของเครื่องมือวิเคราะห์ซอร์สโค้ดที่คอมไพล์เป็นไบต์โค้ด Java 21

ปลั๊กอิน Android Gradle 9.2.0-alpha01

ปัญหาที่แก้ไขแล้ว
ปลั๊กอิน Android Gradle
เตือนผู้ใช้หากมี commonTest แต่ลืม withHostTestBuilder
[fused lib - public] OkHttp มีแหล่งที่มา
เรียกใช้ androidDeviceTest ไม่ได้โดยมีตัวยึดตำแหน่งไฟล์ Manifest ในไลบรารี (AGP 9.0.0 ที่มีปลั๊กอิน com.android.kotlin.multiplatform.library)
AGP ควรแสดงคำเตือนหากผู้ใช้มี src/androidDeviceTest/java โดยปิดใช้ Java
เครื่องมือวิเคราะห์ซอร์สโค้ด
ตรวจหาการสะกดคำผิดในข้อความ