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

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

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

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

कम से कम वर्शन डिफ़ॉल्ट वर्शन नोट
Gradle 8.6 8.6 ज़्यादा जानने के लिए, Gradle को अपडेट करना लेख पढ़ें.
एसडीके बिल्ड टूल 34.0.0 34.0.0 एसडीके बिल्ड टूल इंस्टॉल करें या कॉन्फ़िगर करें.
एनडीके लागू नहीं 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 Patch 2 (2023.3.1.20) में उपलब्ध है.

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

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

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

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

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

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

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

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

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

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

अगर कोई AAR बनाया और पब्लिश किया जा रहा है, तो आपकी लाइब्रेरी जिन लोकल जार पर निर्भर करती है उन्हें 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, उन एएआर के लिए non-reproducible classes.jar बनाता है जिनमें classes.jar नहीं होता
ComposeOptions से sourceInformation को कॉन्फ़िगर करने की अनुमति दें
android.bundle.DeviceSpec मैसेज में sdk_runtime फ़ील्ड नहीं मिला
compileOnlyApi के लिए सहायता
संसाधन प्रोसेसिंग बंद होने पर, लाइब्रेरी मॉड्यूल में R8 काम नहीं करता
ट्रांसफ़ॉर्मेशन के दौरान आर्टफ़ैक्ट का नाम बदलने की सुविधा जोड़ी गई
sourceSets.androidMain.resources के srcDir में टास्क का आउटपुट जोड़ने से, टास्क की डिपेंडेंसी नहीं बनती
AndroidPluginVersion.toString() में शुरुआती 0 मौजूद नहीं हैं
Artifacts.add(FileSystemLocation) पर ज़्यादा पाबंदी होनी चाहिए.
AGP 8.3.0-alpha11, रिलीज़ APK बनाता है. यह APK, android.content.res.Resources$NotFoundException की वजह से स्टार्टअप पर क्रैश हो जाता है
डाइनैमिक सुविधाओं का इस्तेमाल करने वाले प्रोजेक्ट में, Android Gradle प्लग इन 8.2.0 को इंस्टॉल करने का टास्क पूरा नहीं हो पाता
AIDL कंपाइल करने पर IndexOutOfBoundsException की गड़बड़ी होती है: Index 0 out of bounds for length 0
MergeJavaResourcesTask में इंक्रीमेंटल इनपुट हैंडल करने से जुड़ी समस्या
AGP 8.3.0-alpha02, सुरक्षा से जुड़ी जोखिमों वाली लाइब्रेरी पर निर्भर करता है
चुने गए गतिविधि टेंप्लेट के लिए, androidx.* डिपेंडेंसी वाले प्रोजेक्ट की ज़रूरत होती है
AGP अपग्रेड असिस्टेंट, मॉड्यूल से consumerProguardFiles को गलत तरीके से हटा देती है
AGP अपग्रेड असिस्टेंट हमेशा लोड होती रहती है
SourceDirectories#static को GenerateBuildConfig टास्क पर निर्भर नहीं होना चाहिए
Compose Preview, ट्रांज़िटिव डिपेंडेंसी से क्लास हल नहीं कर पा रहा है
AGP 8.3, zipApksFor Task को ब्रेक करता है
AndroidX Desktop आर्टफ़ैक्ट, Android APK में पैकेज किए गए हैं
Lint
Lint testing framework के 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 डाउनलोड नहीं हो पा रहे हैं