Android Gradle प्लग इन 8.4.0 (अप्रैल 2024)

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

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

Android Gradle प्लग इन 8.4, एपीआई लेवल 34 तक के साथ काम करता है. यहां अन्य सिस्टम के साथ काम करने की जानकारी दी गई है:

कम से कम वर्शन डिफ़ॉल्ट वर्शन नोट
Gradle 8.6 8.6 ज़्यादा जानने के लिए, Gradle को अपडेट करना लेख पढ़ें.
SDK टूल के लिए बिल्ड टूल 34.0.0 34.0.0 SDK Build Tools को इंस्टॉल या कॉन्फ़िगर करें.
एनडीके लागू नहीं 26.1.10909125 NDK का कोई दूसरा वर्शन इंस्टॉल या कॉन्फ़िगर करें.
JDK 17 17 ज़्यादा जानने के लिए, JDK वर्शन सेट करना लेख पढ़ें.

Android Gradle प्लग इन 8.4 में ये नई सुविधाएं हैं.

पैच रिलीज़

यहां Android Studio Jellyfish और Android Gradle प्लग इन 8.4 में, पैच रिलीज़ की सूची दी गई है.

Android Studio Jellyfish | 2023.3.1 पैच 2 और AGP 8.4.2 (जून 2024)

सुरक्षा से जुड़ा अहम अपडेट: Android Studio Iguana | 2023.2.1 और इसके बाद के वर्शन में उपलब्ध GitHub प्लग इन में एक सुरक्षा से जुड़ी समस्या है. इसकी वजह से, ऐक्सेस टोकन, बिना अनुमति वाले पक्षों को दिख सकते हैं.

समस्या को ठीक करने का तरीका: Jetbrains ने IntelliJ प्लैटफ़ॉर्म के प्रॉडक्ट में इस समस्या को ठीक कर दिया है. यह तरीका अब Android Studio Jellyfish | 2023.3.1 पैच 2 (2023.3.1.20) में उपलब्ध है.

अगर आपके पास पहले से ही स्टैबल चैनल पर Android Studio का कोई वर्शन है, तो सहायता > अपडेट देखें पर क्लिक करके अपडेट पाया जा सकता है. इसके अलावा, macOS पर Android Studio > अपडेट देखें पर क्लिक करके भी अपडेट पाया जा सकता है. अगर ऐसा नहीं है, तो सबसे नया स्टेबल बिल्ड डाउनलोड करें.

इसके अलावा, अगर आपने IDE में GitHub के पुल रिक्वेस्ट की सुविधा का इस्तेमाल किया है, तो हमारा सुझाव है कि आप प्लग इन के ज़रिए इस्तेमाल किए जा रहे सभी GitHub टोकन रद्द कर दें. प्लग इन, OAuth इंटिग्रेशन या निजी ऐक्सेस टोकन (पीएटी) का इस्तेमाल कर सकता है. इसलिए, कृपया दोनों की जांच करें और ज़रूरत पड़ने पर उन्हें रद्द करें:

  • OAuth इंटिग्रेशन का ऐक्सेस रद्द करने के लिए, ऐप्लिकेशन > अनुमति पा चुके OAuth ऐप्लिकेशन पर जाएं और JetBrains IDE इंटिग्रेशन टोकन का ऐक्सेस रद्द करें.
  • पीएटी का ऐक्सेस रद्द करने के लिए, निजी ऐक्सेस टोकन पर जाएं और GitHub प्लग इन के लिए जारी किया गया टोकन मिटाएं. टोकन का डिफ़ॉल्ट नाम IntelliJ IDEA GitHub इंटिग्रेशन प्लग इन है. हालांकि, हो सकता है कि आपने अपनी पसंद के मुताबिक कोई नाम इस्तेमाल किया हो.

टोकन का ऐक्सेस वापस लेने के बाद, आपको प्लग इन को फिर से सेट अप करना होगा, ताकि Git ऑपरेशन के साथ-साथ प्लग इन की सभी सुविधाएं फिर से काम कर सकें.

आपको हुई किसी भी असुविधा के लिए हम माफ़ी चाहते हैं. साथ ही, हम सभी उपयोगकर्ताओं से अनुरोध करते हैं कि वे अपने कोड और डेटा को सुरक्षित रखने के लिए, तुरंत अपडेट करें.

इस छोटे अपडेट में, ये गड़बड़ियां ठीक की गई हैं.

Android Studio Jellyfish | 2023.3.1 पैच 1 और AGP 8.4.1 (मई 2024)

इस छोटे अपडेट में, गड़बड़ियां ठीक करने से जुड़े ये अपडेट शामिल हैं.

लाइब्रेरी की क्लास छोटी हो गई हैं

Android Gradle प्लग इन 8.4 से, अगर किसी Android लाइब्रेरी प्रोजेक्ट को छोटा किया जाता है, तो प्रोग्राम की छोटी की गई क्लास को इंटर-प्रोजेक्ट पब्लिश करने के लिए पब्लिश किया जाएगा. इसका मतलब है कि अगर कोई ऐप्लिकेशन, Android लाइब्रेरी के सब-प्रोजेक्ट के छोटे किए गए वर्शन पर निर्भर करता है, तो APK में छोटी की गई Android लाइब्रेरी क्लास शामिल होंगी. अगर APK में क्लास मौजूद नहीं हैं, तो आपको लाइब्रेरी में मौजूद डेटा को बनाए रखने के नियमों में बदलाव करना पड़ सकता है.

अगर कोई AAR बनाया और पब्लिश किया जा रहा है, तो आपकी लाइब्रेरी पर निर्भर रहने वाले लोकल jar, AAR में बिना छोटा किए शामिल किए जाएंगे. इसका मतलब है कि कोड छोटा करने वाला टूल उन पर काम नहीं करेगा.

पहले जैसा व्यवहार पाने के लिए, gradle.properties फ़ाइल में android.disableMinifyLocalDependenciesForLibraries सेट करें और बग की शिकायत करें. AGP के आने वाले वर्शन में, यह फ़्लैग हटा दिया जाएगा.

ठीक की गई समस्याएं

Android Gradle प्लग इन 8.4.0

ठीक की गई समस्याएं
Android Gradle प्लग इन
JavaCompile के लिए, `--release` विकल्प का इस्तेमाल क्यों नहीं किया जा सकता, इसकी वजह बताने वाले गड़बड़ी के मैसेज को बेहतर बनाना
@DoNotCacheByDefault का इस्तेमाल करके, MergeSourceSetFolders को कैश मेमोरी में सेव करने की सुविधा बंद करना
AGP 8.2.0 में JaCoCo वर्शन सेट नहीं किया जा सका
DynamicFeatureBuildType में isDebuggable मौजूद नहीं है
इंटर-प्रोजेक्ट के लिए, छोटी की गई लाइब्रेरी क्लास सही तरीके से पब्लिश नहीं की गई हैं
Variant#sources API उपलब्ध कराएं, जिसमें जनरेट की गई फ़ाइलें शामिल न हों
AGP मॉडल में, java-platform प्रोजेक्ट की डिपेंडेंसी शामिल नहीं होतीं
ExtractAarTransform, उन aar के लिए classes.jar बनाता है जिनमें classes.jar नहीं है. इन classes.jar को फिर से बनाया नहीं जा सकता
ComposeOptions से sourceInformation को कॉन्फ़िगर करने की अनुमति दें
मैसेज android.bundle.DeviceSpec में फ़ील्ड: sdk_runtime नहीं मिला
compileOnlyApi के लिए सहायता
रिसॉर्स प्रोसेसिंग बंद होने पर, R8 किसी लाइब्रेरी मॉड्यूल पर काम नहीं करता
ट्रांसफ़ॉर्मेशन के दौरान आर्टफ़ैक्ट का नाम बदलने की सुविधा जोड़ी गई
sourceSets.androidMain.resources के srcDir के तौर पर टास्क आउटपुट जोड़ने से, टास्क की डिपेंडेंसी नहीं बनती
AndroidPluginVersion.toString() में शुरुआती शून्य नहीं हैं
Artifacts.add(FileSystemLocation) को ज़्यादा पाबंदी वाली सुविधा बनानी चाहिए.
AGP 8.3.0-alpha11, रिलीज़ APK बनाता है, जो स्टार्टअप पर android.content.res.Resources$NotFoundException के साथ क्रैश हो जाता है
Android Gradle प्लग इन 8.2.0 को ऐसे प्रोजेक्ट में इंस्टॉल करने में समस्या आना जिसमें डाइनैमिक सुविधाओं का इस्तेमाल किया जाता है
IndexOutOfBoundsException की वजह से, AIDL कंपाइल नहीं हो पा रहा है: लंबाई 0 के लिए इंडेक्स 0, तय सीमा से बाहर है
MergeJavaResourcesTask के इंक्रीमेंटल इनपुट को हैंडल करने से जुड़ी समस्या
AGP 8.3.0-alpha02, सुरक्षा से जुड़ी जोखिम वाली लाइब्रेरी पर निर्भर करता है
चुने गए गतिविधि टेंप्लेट के लिए, androidx.* डिपेंडेंसी वाला प्रोजेक्ट ज़रूरी है
AGP Upgrade Assistant, मॉड्यूल से consumerProguardFiles को गलत तरीके से हटा देता है
AGP अपग्रेड असिस्टेंट अनलिमिटेड लोड करता है
SourceDirectories#static को GenerateBuildConfig टास्क पर निर्भर नहीं होना चाहिए
Compose की झलक, ट्रांज़िटिव डिपेंडेंसी से क्लास को हल नहीं कर पा रही है
AGP 8.3 में, zipApksFor टास्क काम नहीं करता
Android APK में पैकेज किए गए AndroidX डेस्कटॉप आर्टफ़ैक्ट
Lint
Lint टेस्टिंग फ़्रेमवर्क का GradleModelMocker, लाइब्रेरी वर्शन सेट करने की अनुमति नहीं देता
Lint K2 UAST: UCallableReferenceExpression, गलत qualifierType की रिपोर्ट करता है
ओवरलोड किए गए फ़ंक्शन के साथ useK2Uast=true का इस्तेमाल करने पर, गलत फ़ॉल्स पॉज़िटिव लिंट
[BuildTool/Lint] ChecksSdkIntAtLeast कंस्ट्रक्टर प्रॉपर्टी
Lint इंटिग्रेशन
Lint, KMP की किसी डिपेंडेंसी को अलग नहीं कर पा रहा है

Android Gradle प्लग इन 8.4.1

ठीक की गई समस्याएं
Android Gradle प्लग इन
JDK 21 के साथ java 8 को टारगेट करने की सुविधा बंद होने की चेतावनी को छिपाने की अनुमति देना
Dexer (D8)
java.lang.VerifyError: Verifier rejected class
नया वर्शन R8 फ़ॉर्मैट में बदलने के बाद, गड़बड़ी का पता चलना
हो सकता है कि इंटरमीडिएट बिल्ड में, स्टब के लिए पूरा ग्लोबल सिंथेटिक कॉन्टेंट न हो

Android Gradle प्लग इन 8.4.2

ठीक की गई समस्याएं
Android Gradle प्लग इन
ऐसा लगता है कि AGP 8.4, CI पर GMD डाउनलोड करने की सुविधा को बंद कर देता है