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 प्लगिन |
|
|
Android Gradle प्लगिन 9.2.0
| ठीक की गई समस्याएं | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Android Gradle प्लगिन |
|
|||||||||||||||
| लिंट |
|
|||||||||||||||
| लिंट इंटिग्रेशन |
|
|||||||||||||||
| Shrinker (R8) |
|
|||||||||||||||