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 | ज़्यादा जानने के लिए, जेडीके वर्शन सेट करना लेख पढ़ें. |
| Kotlin Gradle प्लगिन (KGP) | 2.2.10 | 2.2.10 | ज़्यादा जानने के लिए, Kotlin Gradle प्लगिन पर रनटाइम डिपेंडेंसी लेख पढ़ें. |
यूनिफ़ाइड कवरेज और टेस्ट रिपोर्ट
को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 प्लगिन |
|
|
Android Gradle प्लगिन 9.2.0
| ठीक की गई समस्याएं | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Android Gradle प्लगिन |
|
|||||||||||||||
| लिंट |
|
|||||||||||||||
| लिंट इंटिग्रेशन |
|
|||||||||||||||
| Shrinker (R8) |
|
|||||||||||||||