Android Gradle प्लगिन 9.2 एक छोटी रिलीज़ है. इसमें कई नई सुविधाएं और सुधार शामिल हैं.
इनके साथ काम करता है
Android Gradle प्लगिन 9.2, ज़्यादा से ज़्यादा एपीआई लेवल 36.1 के साथ काम करता है. 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.0-alpha04
| ठीक की गई समस्याएं | |||
|---|---|---|---|
| Android Gradle प्लगिन |
|
||
Android Gradle प्लगिन 9.2.0-alpha03
| ठीक की गई समस्याएं | |||
|---|---|---|---|
| Android Gradle प्लगिन |
|
||
| लिंट |
|
||
| लिंट इंटिग्रेशन |
|
||
Android Gradle प्लगिन 9.2.0-alpha02
| ठीक की गई समस्याएं | ||||
|---|---|---|---|---|
| Android Gradle प्लगिन |
|
|||
| लिंट इंटिग्रेशन |
|
|||
Android Gradle प्लगिन 9.2.0-alpha01
| ठीक की गई समस्याएं | |||||
|---|---|---|---|---|---|
| Android Gradle प्लगिन |
|
||||
| लिंट |
|
||||