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 एनडीके का कोई दूसरा वर्शन इंस्टॉल करें या कॉन्फ़िगर करें.
जेडीके 17 17 ज़्यादा जानने के लिए, जेडीके वर्शन सेट करना लेख पढ़ें.

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 टोकन के लिए ऐक्सेस रद्द करें.
  • पीएटी के लिए ऐक्सेस रद्द करने के लिए, निजी ऐक्सेस टोकन पर जाएं और 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 जनरेट करता है. यह android.content.res.Resources$NotFoundException की वजह से स्टार्टअप पर क्रैश हो जाता है
डाइनैमिक सुविधाओं का इस्तेमाल करने वाले प्रोजेक्ट में, Android Gradle प्लग इन 8.2.0 को इंस्टॉल करने का टास्क पूरा नहीं हो पाता
AIDL कंपाइल करने में IndexOutOfBoundsException की वजह से गड़बड़ी हुई: इंडेक्स 0, लंबाई 0 के लिए तय सीमा से बाहर है
MergeJavaResourcesTask में इंक्रीमेंटल इनपुट हैंडल करने से जुड़ी समस्या
AGP 8.3.0-alpha02, सुरक्षा से जुड़ी जोखिमों वाली लाइब्रेरी पर निर्भर करता है
चुने गए गतिविधि टेंप्लेट के लिए, androidx.* डिपेंडेंसी वाले प्रोजेक्ट की ज़रूरत होती है
AGP अपग्रेड असिस्टेंट, मॉड्यूल से consumerProguardFiles को ग़लती से हटा देती है
AGP अपग्रेड असिस्टेंट हमेशा लोड होती रहती है
SourceDirectories#static को GenerateBuildConfig टास्क पर निर्भर नहीं होना चाहिए
Compose की झलक दिखाने वाली सुविधा, ट्रांज़िटिव डिपेंडेंसी से क्लास को हल नहीं कर सकती
AGP 8.3, zipApksForTask को ब्रेक करता है
AndroidX Desktop के आर्टफ़ैक्ट, Android APK में पैकेज किए गए हैं
लिंट
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 डाउनलोड नहीं हो पा रहे हैं