ปลั๊กอิน 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 is not yet finalized

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

ปัญหาที่แก้ไขแล้ว
ปลั๊กอิน Android Gradle
ความล้มเหลวของ JdkImageTransform กับ JDK 26
เข้ารหัส minAgpVersion ในข้อมูลเมตาของ AAR โดยอัตโนมัติใน AGP 10.0
เครื่องมือวิเคราะห์ซอร์สโค้ด
หน้าต่างบริบทถูกตัดทอนในรายงาน SARIF ของเครื่องมือวิเคราะห์ซอร์สโค้ดเนื่องจากตัวชี้ออฟเซ็ตติดอยู่ใน `SarifReporter.kt`
ไคลเอ็นต์ Gradle ของเครื่องมือวิเคราะห์ซอร์สโค้ดไม่มีฟีเจอร์ที่สำคัญซึ่งทำให้ไม่น่าเชื่อถือ
การผสานรวมเครื่องมือวิเคราะห์ซอร์สโค้ด
งาน 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
[lib แบบผสาน - สาธารณะ] OkHttp มีแหล่งที่มา
ไม่สามารถเรียกใช้ androidDeviceTest ด้วยตัวยึดตำแหน่ง Manifest ในไลบรารี (AGP 9.0.0 ที่มีปลั๊กอิน com.android.kotlin.multiplatform.library)
AGP ควรเตือนหากผู้ใช้มี src/androidDeviceTest/java โดยปิดใช้ Java
เครื่องมือวิเคราะห์ซอร์สโค้ด
เครื่องมือวิเคราะห์ซอร์สโค้ดสะกดผิดในข้อความ