Android Gradle प्लग इन 8.7 के रिलीज़ नोट

JCenter का रिपॉज़िटरी 31 मार्च, 2021 से रीड-ओनली मोड में काम कर रहा है. ज़्यादा जानकारी के लिए, JCenter सेवा से जुड़े अपडेट देखें.

Android Studio का बिल्ड सिस्टम, Gradle पर आधारित है और 'Android Gradle प्लग इन', Android ऐप्लिकेशन बनाने के लिए खास तौर पर कई सुविधाएं जोड़ता है. आम तौर पर, Android Gradle प्लग इन (AGP) को Android Studio के साथ अपडेट किया जाता है. हालांकि, प्लग इन और Gradle सिस्टम के बाकी हिस्से, Android Studio के बिना भी काम कर सकते हैं और उन्हें अलग से अपडेट किया जा सकता है.

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

यह देखने के लिए कि 'Android Gradle प्लग इन' के इस वर्शन में किन समस्याओं को ठीक किया गया है, बंद की गई समस्याएं देखें.

Android Gradle प्लग इन में होने वाले बड़े बदलावों के बारे में खास जानकारी पाने के लिए, Android Gradle प्लग इन का रोडमैप देखें.

अपने Android बिल्ड को Gradle के साथ कॉन्फ़िगर करने का तरीका जानने के लिए, ये पेज देखें:

Gradle बिल्ड सिस्टम के बारे में ज़्यादा जानकारी के लिए, Gradle उपयोगकर्ता गाइड देखें.

Android Gradle प्लग इन को अपडेट करना

Android Studio को अपडेट करने पर, आपको Android Gradle प्लग इन को अपने-आप नए वर्शन पर अपडेट करने का अनुरोध मिल सकता है. आपके पास अपडेट को स्वीकार करने या अपने प्रोजेक्ट के बिल्ड की ज़रूरतों के आधार पर, मैन्युअल तरीके से कोई वर्शन तय करने का विकल्प होता है.

प्लग इन का वर्शन बताने के लिए, Android Studio में फ़ाइल > प्रोजेक्ट का स्ट्रक्चर > प्रोजेक्ट मेन्यू या टॉप-लेवल build.gradle.kts फ़ाइल में जाकर ऐसा किया जा सकता है. प्लग इन का वर्शन, उस Android Studio प्रोजेक्ट में बनाए गए सभी मॉड्यूल पर लागू होता है. यहां दिए गए उदाहरण में, build.gradle.kts फ़ाइल से प्लग इन को 8.7.0 वर्शन पर सेट किया गया है:

Kotlin

plugins {
    id("com.android.application") version "8.7.0" apply false
    id("com.android.library") version "8.7.0" apply false
    id("org.jetbrains.kotlin.android") version "2.0.20" apply false
}

Groovy

plugins {
    id 'com.android.application' version '8.7.0' apply false
    id 'com.android.library' version '8.7.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.0.20' apply false
}

चेतावनी: आपको वर्शन नंबर में डाइनैमिक डिपेंडेंसी का इस्तेमाल नहीं करना चाहिए, जैसे कि 'com.android.tools.build:gradle:8.7.+'. इस सुविधा का इस्तेमाल करने से, वर्शन के अनचाहे अपडेट हो सकते हैं. साथ ही, वर्शन के बीच के अंतर को हल करने में भी मुश्किल हो सकती है.

अगर प्लग इन का चुना गया वर्शन डाउनलोड नहीं किया गया है, तो अगली बार प्रोजेक्ट बनाने पर या Android Studio के मेन्यू बार में फ़ाइल > Gradle फ़ाइलों के साथ प्रोजेक्ट सिंक करें पर क्लिक करने पर, Gradle इसे डाउनलोड कर लेगा.

Gradle अपडेट करना

Android Studio को अपडेट करने पर, आपको Gradle को भी सबसे नए वर्शन में अपडेट करने का अनुरोध मिल सकता है. आपके पास अपडेट को स्वीकार करने या अपने प्रोजेक्ट के बिल्ड की ज़रूरतों के आधार पर, मैन्युअल तरीके से कोई वर्शन तय करने का विकल्प होता है.

यहां दी गई टेबल में बताया गया है कि Android Gradle प्लग इन के हर वर्शन के लिए, Gradle का कौनसा वर्शन ज़रूरी है. बेहतर परफ़ॉर्मेंस के लिए, आपको Gradle और प्लग इन, दोनों के सबसे नए वर्शन का इस्तेमाल करना चाहिए.

प्लग इन का वर्शनGradle का ज़रूरी कम से कम वर्शन
8.78.9
8.68.7
8.58.7
8.48.6
8.38.4
8.28.2
8.18.0
8.08.0
7.47.5

पुराने संस्करण

प्लग इन का वर्शनGradle का ज़रूरी वर्शन
7.37.4
7.27.3.3
7.17.2
7.07.0
4.2.0 से ज़्यादा6.7.1
4.1.0 और उसके बाद के वर्शन6.5 या उससे ज़्यादा
4.0.0 और उसके बाद के वर्शन6.1.1 और उसके बाद के वर्शन
3.6.0 - 3.6.45.6.4 और उसके बाद के वर्शन
3.5.0 से 3.5.4 तक5.4.1 और उसके बाद के वर्शन
3.4.0 - 3.4.35.1.1 और उसके बाद के वर्शन
3.3.0 से 3.3.3 तक4.10.1 और उसके बाद के वर्शन
3.2.0 - 3.2.14.6 और उससे ज़्यादा
3.1.0 और उसके बाद के वर्शन4.4 से ज़्यादा
3.0.0 और उसके बाद के वर्शन4.1 से ज़्यादा
2.3.0 और उसके बाद के वर्शन3.3 से ज़्यादा
2.1.3 - 2.2.32.14.1 - 3.5
2.0.0 से 2.1.22.10 से 2.13
1.5.02.2.1 - 2.13
1.2.0 - 1.3.12.2.1 - 2.9
1.0.0 से 1.1.32.2.1 से 2.3 तक

Android Studio में, फ़ाइल > प्रोजेक्ट स्ट्रक्चर > प्रोजेक्ट मेन्यू में जाकर, Gradle वर्शन तय किया जा सकता है या कमांड लाइन का इस्तेमाल करके, Gradle वर्शन अपडेट किया जा सकता है. gradlew स्क्रिप्ट अपडेट करने के लिए, Gradle Wrapper कमांड लाइन टूल का इस्तेमाल करना सबसे सही तरीका है. यहां दिए गए उदाहरण में, Gradle Wrapper का इस्तेमाल करके Gradle वर्शन को 8.7 पर सेट किया गया है. ध्यान दें, Gradle और Gradle Wrapper, दोनों को अपग्रेड करने के लिए, आपको यह निर्देश दो बार चलाना होगा. ज़्यादा जानकारी के लिए, Gradle Wrapper को अपग्रेड करना लेख पढ़ें.

gradle wrapper --gradle-version 8.7

हालांकि, कुछ मामलों में ऐसा हो सकता है कि यह काम न करे. उदाहरण के लिए, अगर आपने अभी-अभी AGP को अपडेट किया है और वह अब Gradle के मौजूदा वर्शन के साथ काम नहीं करता. ऐसे में, आपको gradle/wrapper/gradle-wrapper.properties फ़ाइल में मौजूद Gradle डिस्ट्रिब्यूशन रेफ़रंस में बदलाव करना होगा. यहां दिए गए उदाहरण में, gradle-wrapper.properties फ़ाइल में Gradle वर्शन को 8.7 पर सेट किया गया है.

...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.7-bin.zip
...

Android Gradle प्लग इन और Android Studio के साथ काम करने की सुविधा

Android Studio का बिल्ड सिस्टम, Gradle पर आधारित है. साथ ही, Android Gradle प्लग इन (AGP) में Android ऐप्लिकेशन बनाने के लिए कई सुविधाएं जोड़ी गई हैं. यहां दी गई टेबल में बताया गया है कि Android Studio के हर वर्शन के लिए, AGP के किस वर्शन की ज़रूरत होती है.

Android Studio का वर्शन ज़रूरी एजीपी वर्शन
Ladybug | 2024.2.1 3.2-8.7
Koala की नई सुविधाएं | 2024.1.2 3.2-8.6
Koala | 2024.1.1 3.2-8.5
Jellyfish | 2023.3.1 3.2-8.4
इग्वाना | 2.1.2023 3.2 से 8.3
Hedgehog | 2023.1.1 3.2-8.2
Giraffe | 2022.3.1 3.2-8.1
फ़्लमिंगो | 1.2.2022 3.2-8.0

पुराने संस्करण

Android Studio का वर्शन AGP का ज़रूरी वर्शन
Electric Eel | 2022.1.1 3.2-7.4
Dolphin | 2021.3.1 3.2-7.3
Chipmunk | 2021.2.1 3.2-7.2
Bumblebee | 2021.1.1 3.2-7.1
Arctic Fox | 2020.3.1 3.1 से 7.0

Android Gradle प्लग इन में जो नई सुविधाएं जोड़ी गई हैं उनके बारे में जानने के लिए, Android Gradle प्लग इन के रिलीज़ नोट देखें.

Android के एपीआई लेवल के लिए, टूल के कम से कम वर्शन

Android Studio और AGP के कुछ वर्शन, किसी खास एपीआई लेवल के साथ काम करते हैं. अगर आपने अपने प्रोजेक्ट के targetSdk या compileSdk के लिए ज़रूरी Android Studio या AGP के वर्शन के बजाय, पुराने वर्शन का इस्तेमाल किया है, तो अनचाही समस्याएं आ सकती हैं. हमारा सुझाव है कि Android OS के प्री-रिलीज़ वर्शन को टारगेट करने वाले प्रोजेक्ट पर काम करने के लिए, Android Studio और AGP के नए प्री-रिलीज़ वर्शन का इस्तेमाल करें. स्टेबल वर्शन के साथ-साथ, Android Studio के झलक वर्शन इंस्टॉल किए जा सकते हैं.

Android Studio और AGP के कम से कम वर्शन ये हैं:

API स्तर Android Studio का कम से कम वर्शन AGP का कम से कम वर्शन
35 Koala की नई सुविधाएं | 2024.2.1 8.6.0
34 Hedgehog | 2023.1.1 8.1.1
33 Flamingo | 2022.2.1 7.2

वर्शन में हुए बदलाव (नवंबर 2020)

हम Android Gradle प्लग इन (AGP) के वर्शन नंबर को अपडेट कर रहे हैं, ताकि यह Gradle बिल्ड टूल से ज़्यादा मिलता-जुलता हो.

यहां कुछ अहम बदलावों के बारे में बताया गया है:

  • AGP में अब सिमैंटिक वर्शन का इस्तेमाल किया जाएगा. साथ ही, नुकसान पहुंचाने वाले बदलावों को मुख्य रिलीज़ के लिए टारगेट किया जाएगा.

  • हर साल AGP का एक मेजर वर्शन रिलीज़ किया जाएगा. यह वर्शन, Gradle के मेजर वर्शन के साथ अलाइन होगा.

  • AGP 4.2 के बाद रिलीज़ होने वाले वर्शन का नाम 7.0 होगा. साथ ही, इसके लिए Gradle के 7.x वर्शन पर अपग्रेड करना ज़रूरी होगा. एजीपी की हर बड़ी रिलीज़ के लिए, दिए गए Gradle टूल में एक बड़ा वर्शन अपग्रेड करना होगा.

  • एपीआई को बंद करने से करीब एक साल पहले, उनकी जगह पर काम करने वाली नई सुविधाएं उपलब्ध कराई जाएंगी. बंद किए गए एपीआई, अगले बड़े अपडेट के दौरान करीब एक साल बाद हटा दिए जाएंगे.

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

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

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

लिंट के व्यवहार में बदलाव

Android Gradle प्लग इन 8.7.0-alpha08 से, अगर Gradle का इस्तेमाल करके lint को चलाते समय LintError मौजूद है, तो lint विश्लेषण टास्क एक अपवाद दिखाता है. इस बदलाव से, बिल्ड कैश मेमोरी में कभी-कभी होने वाली गड़बड़ियों को कैश मेमोरी में सेव होने से रोका जा सकता है.

माफ़ करें, इस बदलाव की वजह से उन प्रोजेक्ट के लिए बिल्ड नहीं हो पा रहे हैं जिनकी लिंट बेसलाइन फ़ाइलों में LintError के असली इंस्टेंस हैं. गड़बड़ी के मैसेज में यह जानकारी होती है कि किन लिंट की जांच से समस्या हो रही है. कुछ मामलों में, संबंधित लाइब्रेरी डिपेंडेंसी अपडेट करने से समस्या ठीक हो सकती है. अगर ऐसा नहीं है, तो समस्या वाले लिंट की जांच को तब तक बंद किया जा सकता है, जब तक कि लाइब्रेरी का लेखक उसे ठीक नहीं कर देता.

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

Android Gradle प्लग इन 8.7.0

ठीक की गई समस्याएं
Android Gradle प्लग इन
AGP को यह दावा करना चाहिए कि यह API 35 के साथ काम करता है, जो जल्द ही लॉन्च होने वाला है
AGP 8.5: कई और "mergeDebugResources" टास्क चलाए जाते हैं, जिससे बिल्ड की प्रोसेस धीमी हो जाती है
AGP में ndk 27 को डिफ़ॉल्ट NDK टूल बनाएं.
AGP को यह दावा करना चाहिए कि यह API 35 के साथ काम करता है, जो जल्द ही लॉन्च होने वाला है
एजीपी को यह दावा करना चाहिए कि वह एपीआई 35 के साथ काम करता है जो जल्द ही शिप होने वाला है
NoSuchFileException की वजह से, Android lint को चलाने में समस्या आ रही है
BuildType#initWith, पोस्ट-प्रोसेसिंग ब्लॉक को कॉपी करता है, लेकिन ProGuard कॉन्फ़िगरेशन लागू नहीं होता
foregroundServiceType टैग के लिए मर्ज नहीं किया जा सकता
NoSuchFileException की वजह से, Android lint को चलाने में समस्या आ रही है
Lint
Lint को ViewGroups के तौर पर इस्तेमाल किए गए अमान्य ऑब्जेक्ट की जांच करनी चाहिए
शून्य होस्ट वाले यूआरआई के लिए, "android:host मौजूद नहीं है"
8.7.0-alpha04 में शुरू की गई लिंट जांच के साथ KtAnalysisProvider असंगतता
Kotlin के साथ PackageManager.ResolveInfoFlags.of का इस्तेमाल करते समय, "गलत सकारात्मक" गलत कॉन्स्टेंट

Android Gradle प्लग इन 8.7.1

ठीक की गई समस्याएं
Android Gradle प्लग इन
agp दस्तावेज़ों में बहुत सारे टीबीडी हैं
लिंट
एजीपी 8.6.1: रिग्रेशन - Kotlin में @LongDef के अंदर [Int].toLong() का इस्तेमाल करने पर गलत कॉन्सटेंट लिंट फ़ेल हो जाता है
http या https इंटेंट-फ़िल्टर स्कीम सेट करते समय, "कम से कम एक होस्ट की जानकारी देना ज़रूरी है" लिंट गड़बड़ी

Android Gradle प्लग इन 8.7.2

ठीक की गई समस्याएं
Lint
AGP 8.7.0 - NavOptionsBuilder.popUpTo पर RestrictedApi का गलत इस्तेमाल होने की गड़बड़ी का पता लगाना
Shrinker (R8)
[R8 8.6.27] 'throw null' के साथ, तरीके को लागू करने की सुविधा को बदल दिया गया
R8 के मौजूदा वर्शन के साथ इस्तेमाल करने पर, डिफ़ॉल्ट Android ProGuard फ़ाइलें चेतावनी दिखाती हैं
अगर मैसेज बहुत बड़ा है, तो MissingStartupProfileItemsDiagnostic, Gradle क्लाइंट को 'मेमोरी खत्म हो गई है' गड़बड़ी के साथ क्रैश कर देता है