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

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

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

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

सबसे पुराना वर्शन डिफ़ॉल्ट वर्शन नोट
ग्रेडल 8.6 8.6 ज़्यादा जानकारी के लिए, Gradle को अपडेट करने का तरीका देखें.
SDK Build Tools 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 और एजीपी 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 इंटिग्रेशन का ऐक्सेस रद्द करने के लिए, Applications > Authorized OAuth Apps पर जाएं. इसके बाद, JetBrains IDE Integration टोकन का ऐक्सेस रद्द करें.
  • पीएटी का ऐक्सेस रद्द करने के लिए, Personal access tokens पर जाएं और 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 बनाना और पब्लिश करना है, तो आपकी लाइब्रेरी जिन लोकल JAR पर निर्भर करती है उन्हें AAR में बिना छोटा किए शामिल किया जाएगा. इसका मतलब है कि उन पर कोड छोटा करने वाला टूल काम नहीं करेगा.

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

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

Android Gradle प्लगिन 8.4.2

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

Android Gradle प्लगिन 8.4.1

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

Android Gradle प्लगिन 8.4.0

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