Android Gradle प्लगिन 9.3 एक छोटी रिलीज़ है. इसमें कई नई सुविधाएं और सुधार शामिल हैं.
इनके साथ काम करता है
Android Gradle प्लगिन 9.3, ज़्यादा से ज़्यादा एपीआई लेवल 37 के साथ काम करता है.
Android Gradle प्लगिन 8.6 के साथ काम करने वाले टूल वर्शन से जुड़ी अन्य ज़रूरी जानकारी यहां देखें:
स्टैंडअलोन R8 Configuration Analyzer Gradle टास्क
Android Gradle प्लगिन 9.3 में, R8 Configuration Analyzer को अलग से चलाने के लिए, एक खास Gradle टास्क पेश किया गया है. R8 Configuration Analyzer की मदद से, ऐप्लिकेशन के कोड को छोटा करने और उसे उलझाने के नियमों को ऑप्टिमाइज़ किया जा सकता है.
./gradlew :app:analyzeReleaseR8Config
:app:analyzeReleaseR8Config टास्क, APK या बंडल कंपाइलेशन पाइपलाइन को पूरा किए बिना रिपोर्ट जनरेट करता है. इससे, फ़ीडबैक लूप छोटा हो जाता है. इससे डेवलपर को, डेटा सुरक्षित रखने से जुड़े नियमों को बेहतर बनाने में मदद मिलती है. इसके अलावा, R8 रिलीज़ के लिए तैयार बिल्ड (जैसे, assembleRelease या bundleRelease) चलाकर, रिपोर्ट अपने-आप जनरेट की जा सकती है.
ज़्यादा जानकारी के लिए, रिपोर्ट जनरेट करने के लिए, स्टैंडअलोन Gradle टास्क चलाना लेख पढ़ें.
ठीक की गई समस्याएं
Android Gradle प्लगिन 9.3.3
| ठीक की गई समस्याएं |
| Android Gradle प्लगिन |
|
AGP 9.3.0 के नए ऑप्टिमाइज़ेशन { enable = true } डीएसएल में, ApplicationVariant ऑब्जेक्ट में isMinifyEnabled सेट नहीं होता है
|
|
| Dexer (D8) |
|
एक जैसे इनपुट/आउटपुट पर, `mergeProjectDexDebug` में D8 9.2.14, 8.13.6 की तुलना में ~38% धीमा है
|
|
| Shrinker (R8) |
|
D8 डीबग मोड: ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 31 — regression between R8 8.8.34 and 8.9.27
|
|
VerifyError: Outliner incorrectly extends try-catch region, causing uninitialized register
|
|
R8, `.kotlin_module` फ़ाइल को उसके नाम में `:` के साथ लिखता है. इससे Windows पर फ़ाइल का नाम अमान्य हो जाता है
|
|
R8 बिल्ड में नॉन-डिटरमिनिज़्म: एक जैसे इनपुट से अलग-अलग dex/मैपिंग जनरेट होती है ("एलआईआर में Assume निर्देशों को बनाए रखें" से रिग्रेशन)
|
|
R8 9.1 के साथ डुप्लीकेट मैपिंग
|
|
AGP, समय-समय पर ऐसी DEX फ़ाइलें बनाता है जिनकी पुष्टि नहीं हो पाती. साथ ही, ऐप्लिकेशन लॉन्च होने पर क्रैश हो जाता है
|
|
NullPointerException: Cannot invoke Position.getOutermostCaller() because entryPosition is null
|
|
हर नियम के लिए ज़्यादा मेमोरी इस्तेमाल होना
|
|
R8: Android 4.4 पर VerifyError
|
|
Android Gradle प्लगिन 9.3.2
| ठीक की गई समस्याएं |
| लिंट |
|
AGP 9.3 में JDK 17 पर लिंट क्रैश हो जाता है — NoSuchMethodError: java.util.List.removeLast() in bundled intellij-core JavaDocParser
|
|
Android Gradle प्लगिन 9.3.1
| ठीक की गई समस्याएं |
|
एजीपी 9.3.1 में, सार्वजनिक तौर पर बताई गई किसी भी समस्या को 'ठीक की गई' के तौर पर मार्क नहीं किया गया है
|
Android Gradle प्लगिन 9.3.0-rc02
| ठीक की गई समस्याएं |
|
एजीपी 9.3.0-rc02 में, सार्वजनिक तौर पर बताई गई किसी भी समस्या को 'ठीक की गई' के तौर पर मार्क नहीं किया गया है
|
Android Gradle प्लगिन 9.3.0-rc01
| ठीक की गई समस्याएं |
|
एजीपी 9.3.0-rc01 में, सार्वजनिक तौर पर बताई गई किसी भी समस्या को 'ठीक की गई' के तौर पर मार्क नहीं किया गया है
|
Android Gradle प्लगिन 9.3.0-alpha12
| ठीक की गई समस्याएं |
| Android Gradle प्लगिन |
|
बिल्ड फ़ेल हुआ: compile_library_classes_jar में classes.jar पर फ़ाइल हैंडल लीक होने की वजह से, Windows पर IDE को रीस्टार्ट करने तक फिर से बिल्ड नहीं किया जा सकता
|
|
| लिंट |
|
Lint, इंपोर्ट की गई Java लाइब्रेरी को Android प्रोजेक्ट के तौर पर देखता है. साथ ही, कंपाइल किए गए SDK टूल के वर्शन को अनदेखा करता है
|
|
Android Gradle प्लगिन 9.3.0-alpha11
| ठीक की गई समस्याएं |
|
एजीपी 9.3.0-alpha11 में, सार्वजनिक तौर पर बताई गई किसी भी समस्या को 'ठीक की गई' के तौर पर मार्क नहीं किया गया है
|
Android Gradle प्लगिन 9.3.0-alpha10
| ठीक की गई समस्याएं |
|
एजीपी 9.3.0-alpha10 में, सार्वजनिक तौर पर बताई गई किसी भी समस्या को 'ठीक की गई' के तौर पर मार्क नहीं किया गया है
|
Android Gradle प्लगिन 9.3.0-alpha09
| ठीक की गई समस्याएं |
|
एजीपी 9.3.0-alpha09 में, सार्वजनिक तौर पर बताई गई किसी भी समस्या को 'ठीक की गई' के तौर पर मार्क नहीं किया गया है
|
Android Gradle प्लगिन 9.3.0-alpha08
| ठीक की गई समस्याएं |
|
एजीपी 9.3.0-alpha08 में, सार्वजनिक तौर पर बताई गई किसी भी समस्या को 'ठीक की गई' के तौर पर मार्क नहीं किया गया है
|
Android Gradle प्लगिन 9.3.0-alpha07
| ठीक की गई समस्याएं |
|
एजीपी 9.3.0-alpha07 में, सार्वजनिक तौर पर बताई गई किसी भी समस्या को 'ठीक की गई' के तौर पर मार्क नहीं किया गया है
|
Android Gradle प्लगिन 9.3.0-alpha06
| ठीक की गई समस्याएं |
| Android Gradle प्लगिन |
|
JavaDocGenerationTask को वर्कर का इस्तेमाल करना चाहिए
|
|
Android Gradle प्लगिन 9.3.0-alpha05
| ठीक की गई समस्याएं |
| Shrinker (R8) |
|
L8 ओब्फ़स्केशन मैपिंग, app mapping.txt में शामिल नहीं है
|
|
Android Gradle प्लगिन 9.3.0-alpha04
| ठीक की गई समस्याएं |
| Android Gradle प्लगिन |
|
KMP keepRules source set ignored without it.consumerKeepRules.publish = true
|
|
Android Gradle प्लगिन 9.3.0-alpha03
| ठीक की गई समस्याएं |
| Android Gradle प्लगिन |
|
java.lang.ClassNotFoundException: Didn't find class "com.android.tools.r8.RecordTag" after upgrading gradle to 9.2.0
|
|
| लिंट |
|
इस्तेमाल नहीं किए जाने वाले रिसॉर्स को हटाने की सुविधा बंद होने पर लिंट की गड़बड़ी
|
|
Android Gradle प्लगिन 9.3.0-alpha02
| ठीक की गई समस्याएं |
| Android Gradle प्लगिन |
|
सुविधा का अनुरोध: Android Gradle प्लग इन में native_libs_merge_blame_file के लिए सहायता जोड़ें
|
|
| लिंट |
|
AnnotationDetector से जुड़ी समस्या के मैसेज में बैकटिक मौजूद नहीं है
|
|
इस्तेमाल नहीं किए जाने वाले रिसॉर्स को हटाने की सुविधा बंद होने पर लिंट की गड़बड़ी
|
|
Android Gradle प्लगिन 9.3.0-alpha01
| ठीक की गई समस्याएं |
| Android Gradle प्लगिन |
|
अपने-आप जनरेट होने वाले वर्शन कोड से जुड़ी समस्या
|
|
AGP: प्रोजेक्ट को डिपेंडेंसी नोटेशन के तौर पर इस्तेमाल करने की सुविधा बंद करना
|
|
| लिंट |
|
UseKtx के साथ लिंट फ़ॉल्स पॉज़िटिव की समस्या
|
|
Android Gradle प्लगिन 9.3.0
| ठीक की गई समस्याएं |
|
AGP 9.3.0 में, सार्वजनिक तौर पर बताई गई किसी भी समस्या को 'ठीक की गई' के तौर पर मार्क नहीं किया गया है
|
R8 के कीप रूल कॉन्फ़िगर करने के लिए, ऑप्टिमाइज़ेशन डीएसएल को अपडेट किया गया
इसमें अपडेट किया गया ऑप्टिमाइज़ेशन डीएसएल शामिल है. इसकी मदद से, R8 ऑप्टिमाइज़ेशन के लिए कीप रूल कॉन्फ़िगर किए जा सकते हैं. यह ऐप्लिकेशन मॉड्यूल और लाइब्रेरी मॉड्यूल टेस्ट के साथ काम करता है. अपडेट किए गए डीएसएल के साथ ऑप्टिमाइज़ेशन को कॉन्फ़िगर करने के लिए, नए optimization ब्लॉक का इस्तेमाल करें. ऐप्लिकेशन के लिए, ऐप्लिकेशन-लेवल की बिल्ड स्क्रिप्ट में, बिल्ड का तरीका (जैसे कि release या debug) के अंदर optimization ब्लॉक को कॉन्फ़िगर करें. अपडेट किए गए ऑप्टिमाइज़ेशन डीएसएल की मदद से, R8 कॉन्फ़िगरेशन को आसानी से सेट अप किया जा सकता है:
- ऑप्टिमाइज़ेशन की सुविधा चालू करने पर, कोड ऑप्टिमाइज़ेशन और इस्तेमाल न किए जाने वाले ऑप्टिमाइज़ रिसॉर्स को हटाने की सुविधा, दोनों चालू हो जाती हैं.
- अब आपको Android के लिए, निजी डेटा के रखरखाव के नियमों वाली डिफ़ॉल्ट फ़ाइल के बारे में बताने की ज़रूरत नहीं है.
ध्यान दें कि लेगसी डीएसएल का इस्तेमाल अब भी किया जा सकता है.
निजी डेटा के रखरखाव के नियमों को तय करने के लिए, सोर्स सेट की सुविधा लॉन्च की गई
निजी डेटा के रखरखाव के नियमों को src/<variant>/keepRules/ सोर्स सेट में रखें. साथ ही, फ़ाइल-सफ़िक्स .keep एट्रिब्यूट का इस्तेमाल करें. डेटा रखरखाव के नियमों के लिए सोर्स सेट, अपडेट किए गए ऑप्टिमाइज़ेशन डीएसएल और लेगसी डीएसएल के साथ काम करते हैं. सोर्स सेट का इस्तेमाल करके, निजी डेटा के रखरखाव के नियमों को ऐप्लिकेशन मॉड्यूल और लाइब्रेरी मॉड्यूल में लागू किया जा सकता है. साथ ही, Kotlin Multiplatform (KMP) मॉड्यूल में उपभोक्ता के लिए बने नियमों को तय करने के लिए भी इनका इस्तेमाल किया जा सकता है.