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

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

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

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

सबसे पुराना वर्शन डिफ़ॉल्ट वर्शन नोट
ग्रेडल 8.6 8.6 ज़्यादा जानकारी के लिए, Gradle को अपडेट करने का तरीका देखें.
एसडीके बिल्ड टूल 34.0.0 34.0.0 इंस्टॉल करें या कॉन्फ़िगर करें एसडीके बिल्ड टूल.
एनडीके (NDK) लागू नहीं 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 पैच 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 बनाया और पब्लिश किया जा रहा है, तो आपकी लाइब्रेरी जिन लोकल जार पर निर्भर करती है उन्हें AAR में छोटा किए बिना शामिल किया जाएगा. इसका मतलब है कि उन पर कोड श्रिंकर नहीं चलेगा.

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

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

Android Gradle प्लगिन 8.4.2

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

Android Gradle प्लगिन 8.4.1

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

Android Gradle प्लगिन 8.4.0

ठीक की गई समस्याएं
Android Gradle प्लगिन
JavaCompile के लिए `--release` विकल्प का इस्तेमाल क्यों नहीं किया जा सकता, इस बारे में गड़बड़ी के मैसेज को बेहतर बनाना
@DoNotCacheByDefault का इस्तेमाल करके, MergeSourceSetFolders की कैश मेमोरी में सेव करने की सुविधा बंद करना
AGP 8.2.0 में JaCoCo का वर्शन सेट नहीं किया जा सका
DynamicFeatureBuildType में isDebuggable मौजूद नहीं है
इंटर-प्रोजेक्ट इस्तेमाल के लिए, छोटी की गई लाइब्रेरी की क्लास सही तरीके से पब्लिश नहीं की जाती हैं
Variant#sources एपीआई उपलब्ध कराना, जिसमें जनरेट की गई फ़ाइलें शामिल नहीं होती हैं
AGP मॉडल में, java-platform प्रोजेक्ट की डिपेंडेंसी शामिल नहीं होती हैं
ExtractAarTransform, aars के लिए non-reproducible classes.jar बनाता है. इनमें classes.jar मौजूद नहीं होता
ComposeOptions से sourceInformation कॉन्फ़िगर करने की अनुमति देना
message 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 का इंस्टॉल टास्क काम नहीं करता जिसमें डाइनैमिक सुविधाओं का इस्तेमाल किया जाता है
IndexOutOfBoundsException: Index 0 out of bounds for length 0 की वजह से, AIDL कंपाइल नहीं हो पाता
MergeJavaResourcesTask के इंक्रीमेंटल इनपुट को हैंडल करने में समस्या
AGP 8.3.0-alpha02, ऐसी लाइब्रेरी पर निर्भर करता है जिनमें सुरक्षा से जुड़े जोखिम मौजूद हैं
चुने गए ऐक्टिविटी टेंप्लेट के लिए, androidx.* डिपेंडेंसी वाला प्रोजेक्ट ज़रूरी है
AGP अपग्रेड असिस्टेंट, मॉड्यूल से consumerProguardFiles को गलत तरीके से हटा देता है
AGP अपग्रेड असिस्टेंट हमेशा लोड होता रहता है
SourceDirectories#static को GenerateBuildConfig टास्क पर निर्भर नहीं होना चाहिए
Compose की झलक में, ट्रांज़िटिव डिपेंडेंसी से क्लास को हल नहीं किया जा सकता
AGP 8.3 की वजह से, zipApksFor टास्क काम नहीं करता
AndroidX डेस्कटॉप आर्टफ़ैक्ट, Android APK में पैकेज किए गए हैं
लिंट
लिंट टेस्टिंग फ़्रेमवर्क का GradleModelMocker, लाइब्रेरी का वर्शन सेट करने की अनुमति नहीं देता
लिंट K2 UAST: UCallableReferenceExpression, गलत qualifierType की रिपोर्ट करता है
ओवरलोड किए गए फ़ंक्शन के साथ, useK2Uast=true होने पर, लिंट फ़ॉल्स पॉज़िटिव दिखाता है
[BuildTool/Lint] ChecksSdkIntAtLeast कंस्ट्रक्टर प्रॉपर्टी
लिंट इंटिग्रेशन
लिंट, KMP डिपेंडेंसी को अलग-अलग नहीं कर पाता