Android Gradle प्लगिन 9.2.0 (अप्रैल 2026)

Android Gradle प्लगिन 9.2 एक छोटी रिलीज़ है. इसमें कई नई सुविधाएं और सुधार शामिल हैं.

इनके साथ काम करता है

Android Gradle प्लगिन 9.2, ज़्यादा से ज़्यादा एपीआई लेवल 37.0 के साथ काम करता है. Android Gradle प्लगिन 8.6 के साथ काम करने वाले टूल वर्शन से जुड़ी अन्य ज़रूरी जानकारी यहां देखें:

सबसे पुराना वर्शन डिफ़ॉल्ट वर्शन नोट
ग्रेडल 9.4.1 9.4.1 ज़्यादा जानकारी के लिए, Gradle को अपडेट करने का तरीका देखें.
एसडीके बिल्ड टूल 36.0.0 36.0.0 एसडीके बिल्ड टूल इंस्टॉल करें या कॉन्फ़िगर करें.
एनडीके (NDK) लागू नहीं 28.2.13676358 एनडीके का कोई दूसरा वर्शन इंस्टॉल करें या कॉन्फ़िगर करें.
जेडीके 17 17 ज़्यादा जानने के लिए, जेडीके वर्शन सेट करना लेख पढ़ें.

यूनिफ़ाइड कवरेज और टेस्ट रिपोर्ट

को android.experimental.reportAggregationSupport=true पर सेट करें.

AGP 9.2.0-alpha07 में, एचटीएमएल डैशबोर्ड जनरेट करने के लिए टास्क जोड़े गए हैं. ये डैशबोर्ड, अलग-अलग तरह के टेस्ट (यूनिट और इंस्ट्रुमेंटेशन), मॉड्यूल, और बिल्ड वैरिएंट से टेस्ट के नतीजों और कवरेज को एक साथ दिखाते हैं. इससे एक ही डैशबोर्ड में पूरी जानकारी मिलती है. ज़्यादा जानकारी के लिए, यूनिफ़ाइड कोड कवरेज रिपोर्ट जनरेट करना और यूनिफ़ाइड टेस्ट रिपोर्ट देखना लेख पढ़ें.

R8 में हुए बदलाव

AGP 9.2.0 में, R8 से जुड़े ये बदलाव शामिल हैं.

रनटाइम के दौरान न दिखने वाली एनोटेशन को बनाए रखने के लिए, -keepattributes सिमैंटिक का ज़्यादा सख्ती से पालन करना

रनटाइम के दौरान, रनटाइम इनविज़िबल एनोटेशन को नहीं पढ़ा जा सकता. इसलिए, D8 रनटाइम के दौरान न दिखने वाले एनोटेशन को बिना किसी शर्त के हटा देता है. इसे बदलने का कोई विकल्प नहीं है.

ProGuard के साथ काम करने के लिए, R8 रनटाइम इनविज़िबल एनोटेशन को आउटपुट करने की सुविधा देता है. हालांकि, DEX में कंपाइल करते समय, रनटाइम में न दिखने वाले एनोटेशन को आम तौर पर कभी भी बनाए नहीं रखना चाहिए. हालांकि, R8 के लिए, रनटाइम में दिखने वाले एनोटेशन को बनाए रखने के लिए, -keepattributes *Annotation* नियम को शामिल करना आम बात है. इसे सीधे तौर पर या उपभोक्ता के लिए बनाए गए नियमों से परोक्ष रूप से शामिल किया जा सकता है. माफ़ करें, इससे रनटाइम के दौरान दिखने वाले एनोटेशन भी नहीं दिखते हैं.

इस समस्या को कम करने और 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.1

ठीक की गई समस्याएं
Android Gradle प्लगिन
java.lang.ClassNotFoundException: Didn't find class "com.android.tools.r8.RecordTag" after upgrading gradle to 9.2.0

Android Gradle प्लगिन 9.2.0

ठीक की गई समस्याएं
Android Gradle प्लगिन
अगर उपयोगकर्ताओं के पास commonTest है, लेकिन वे withHostTestBuilder का इस्तेमाल करना भूल गए हैं, तो उन्हें चेतावनी दें
[fused lib - public] OkHttp में सोर्स शामिल हैं
लाइब्रेरी में मेनिफ़ेस्ट प्लेसहोल्डर के साथ androidDeviceTest नहीं चलाया जा सकता (com.android.kotlin.multiplatform.library प्लगिन के साथ AGP 9.0.0)
अगर उपयोगकर्ता के पास src/androidDeviceTest/java फ़ोल्डर में Java बंद है, तो AGP को चेतावनी देनी चाहिए
AGP 9.0 में, applicationVariants.all.mergeAssetsProvider के लिए androidComponents.onVariant के बराबर कोई विकल्प नहीं है
`*.xml.flat` फ़ाइलों में फ़ाइल के पूरे पाथ होते हैं
R8D8ThreadPoolBuildService रजिस्टर नहीं है
JDK 26 के साथ JdkImageTransform में गड़बड़ी
AGP 10.0 में, AAR के मेटाडेटा में minAgpVersion को अपने-आप कोड में बदलता है
नए AGP डीएसएल का इस्तेमाल करके APK का नाम बदलना
बूटक्लाथपाथ को ऐक्सेस करते समय गड़बड़ी हुई, लेकिन उसका आकलन नहीं किया गया IllegalStateException: targetCompatibility is not yet finalized
keepRules sourceset, लाइब्रेरी के लिए काम नहीं कर रहा है
AGP में सीसी कंपैटिबिलिटी का एलान एम्बेड करना
Kotlin Gradle प्लगिन की डिपेंडेंसी को 2.3.10 पर अपडेट करें
जांच के लिए, मुख्य ऐप्लिकेशन की तुलना में ज़्यादा कंपाइल एसडीके इस्तेमाल करने की अनुमति दें
लिंट
मैसेज में टाइप की गई गलतियों की जांच करना
`SarifReporter.kt` में ऑफ़सेट पॉइंटर के रुक जाने की वजह से, Lint SARIF रिपोर्ट में कॉन्टेक्स्ट विंडो का छोटा होना
Lint Gradle क्लाइंट में एक ज़रूरी सुविधा मौजूद नहीं है. इसलिए, इस पर भरोसा नहीं किया जा सकता
इस्तेमाल नहीं किए जाने वाले रिसॉर्स को हटाने की सुविधा बंद होने पर लिंट की गड़बड़ी
AGP 9, नेस्ट किए गए IntDef कॉन्स्टेंट का इस्तेमाल करने पर WrongConstant की रिपोर्ट करता है
इस्तेमाल नहीं किए जाने वाले रिसॉर्स को हटाने की सुविधा बंद होने पर लिंट की गड़बड़ी
लिंट इंटिग्रेशन
Java 21 बाइटकोड में कंपाइल किए गए कस्टम लिंट चेक के साथ Android Lint काम नहीं करता
Lint Gradle टास्क, --quiet फ़्लैग को अनदेखा करते हैं
Shrinker (R8)
Java 11 को टारगेट करने पर, d8 काम नहीं करता