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 प्लग इन का रोडमैप देखें.

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

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.45.4.1 और उसके बाद के वर्शन
3.4.0 - 3.4.35.1.1 और उसके बाद के वर्शन
3.3.0 - 3.3.34.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 का वर्शन AGP का ज़रूरी वर्शन
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
Iguana | 2023.2.1 3.2-8.3
Hedgehog | 2023.1.1 3.2-8.2
Giraffe | 2022.3.1 3.2-8.1
Flamingo | 2022.2.1 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 वर्शन पर अपग्रेड करना ज़रूरी होगा. AGP के हर मेजर वर्शन के लिए, Gradle टूल के मेजर वर्शन को अपग्रेड करना ज़रूरी होगा.

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

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

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

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

Lint के काम करने के तरीके में बदलाव

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 के साथ काम करता है, जो जल्द ही लॉन्च होने वाला है
AGP को यह दावा करना चाहिए कि यह API 35 के साथ काम करता है, जो जल्द ही लॉन्च होने वाला है
NoSuchFileException की वजह से, Android lint को चलाने में समस्या आ रही है
BuildType#initWith, पोस्ट-प्रोसेसिंग ब्लॉक को कॉपी करता है, लेकिन ProGuard कॉन्फ़िगरेशन लागू नहीं होता
foregroundServiceType टैग के लिए मर्ज नहीं किया जा सकता
NoSuchFileException की वजह से, Android lint को चलाने में समस्या आ रही है
Lint
Lint को ViewGroups के तौर पर इस्तेमाल किए गए अमान्य ऑब्जेक्ट की जांच करनी चाहिए
शून्य होस्ट वाले यूआरआई के लिए, "android:host मौजूद नहीं है"
KtAnalysisSessionProvider, 8.7.0-alpha04 में शुरू की गई lint जांच के साथ काम नहीं करता
Kotlin के साथ PackageManager.ResolveInfoFlags.of का इस्तेमाल करते समय, "गलत नतीजा" WrongConstant

Android Gradle प्लग इन 8.7.1

ठीक की गई समस्याएं
Android Gradle प्लग इन
agp दस्तावेज़ों में बहुत सारे टीबीडी हैं
Lint
AGP 8.6.1: Regression - WrongConstant lint failure when using [Int].toLong() inside a @LongDef in Kotlin
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 क्लाइंट को 'मेमोरी खत्म हो गई है' गड़बड़ी के साथ क्रैश कर देता है