बिल्ड कॉन्फ़िगरेशन के लिए, Kotlin DSL डिफ़ॉल्ट रूप से उपलब्ध होता है
नए प्रोजेक्ट में, अब बिल्ड कॉन्फ़िगरेशन के लिए Kotlin DSL (build.gradle.kts) का इस्तेमाल डिफ़ॉल्ट रूप से किया जाता है. यह Groovy DSL (build.gradle) की तुलना में, बदलाव करने का बेहतर अनुभव देता है. इसमें सिंटैक्स हाइलाइटिंग, कोड पूरा करने की सुविधा, और डिक्लेरेशन पर नेविगेट करने की सुविधा मिलती है. ध्यान दें कि अगर AGP 8.1 और Kotlin DSL का इस्तेमाल किया जा रहा है, तो बेहतर अनुभव के लिए Gradle 8.1 का इस्तेमाल करें. ज़्यादा जानने के लिए, Kotlin DSL को माइग्रेट करने से जुड़ी गाइड देखें.
हर ऐप्लिकेशन के हिसाब से भाषा की सेटिंग अपने-आप लागू होने की सुविधा
Android Studio Giraffe Canary 7 और AGP 8.1.0-alpha07 से शुरू करके, अपने ऐप्लिकेशन को हर ऐप्लिकेशन के लिए भाषा की प्राथमिकताओं को अपने-आप सपोर्ट करने के लिए कॉन्फ़िगर किया जा सकता है. आपके प्रोजेक्ट के संसाधनों के आधार पर, Android Gradle प्लग इन LocaleConfig फ़ाइल जनरेट करता है. साथ ही, इसे फ़ाइनल मेनिफ़ेस्ट फ़ाइल में जोड़ता है. इसलिए, अब आपको इसे मैन्युअल तरीके से जोड़ने की ज़रूरत नहीं है. AGP, आपके ऐप्लिकेशन मॉड्यूल के res फ़ोल्डर और किसी भी लाइब्रेरी मॉड्यूल डिपेंडेंसी में मौजूद संसाधनों का इस्तेमाल करता है. इससे यह तय किया जाता है कि res फ़ाइल में कौनसी स्थानीय भाषाएं शामिल करनी हैं.LocaleConfig
ध्यान दें कि हर ऐप्लिकेशन के लिए भाषा अपने-आप सेट होने की सुविधा, Android 13 (एपीआई लेवल 33) या उसके बाद के वर्शन पर काम करने वाले ऐप्लिकेशन के साथ काम करती है. इस सुविधा का इस्तेमाल करने के लिए, आपको compileSdkVersion को 33 या उससे ज़्यादा पर सेट करना होगा. Android के पुराने वर्शन के लिए, हर ऐप्लिकेशन की भाषा की सेटिंग कॉन्फ़िगर करने के लिए, आपको अब भी एपीआई और ऐप्लिकेशन में भाषा चुनने की सुविधा का इस्तेमाल करना होगा.
हर ऐप्लिकेशन के लिए, भाषा की सुविधा अपने-आप चालू होने की सुविधा को चालू करने के लिए, डिफ़ॉल्ट स्थान-भाषा सेट करें:
ऐप्लिकेशन मॉड्यूल के res फ़ोल्डर में, resources.properties नाम की एक नई फ़ाइल बनाएं.
resources.properties फ़ाइल में, unqualifiedResLocale लेबल का इस्तेमाल करके डिफ़ॉल्ट स्थान-भाषा सेट करें. लोकल के नाम बनाने के लिए, भाषा कोड को स्क्रिप्ट और क्षेत्र के वैकल्पिक कोड के साथ जोड़ें. साथ ही, हर कोड को डैश से अलग करें:
भाषा: दो या तीन अक्षरों वाले ISO 639-1 कोड का इस्तेमाल करें.
स्क्रिप्ट (वैकल्पिक): ISO 15924 कोड का इस्तेमाल करें.
क्षेत्र (ज़रूरी नहीं): दो अक्षरों वाला ISO 3166-1-alpha-2 कोड या तीन अंकों वाला UN_M.49 कोड इस्तेमाल करें.
उदाहरण के लिए, अगर आपकी डिफ़ॉल्ट स्थान-भाषा अमेरिकन इंग्लिश है, तो:
unqualifiedResLocale=en-US
AGP, इस डिफ़ॉल्ट भाषा और आपके तय किए गए किसी भी वैकल्पिक भाषा को, अपने-आप जनरेट होने वाली LocaleConfig फ़ाइल में जोड़ता है. इसके लिए, वह res फ़ोल्डर में मौजूद values-* डायरेक्ट्री का इस्तेमाल करता है.
आपको मैन्युअल तरीके से बनाई गई LocaleConfig फ़ाइल को हटाना होगा. इसके बाद ही, हर ऐप्लिकेशन के लिए भाषा की सुविधा अपने-आप चालू होगी और ऐप्लिकेशन बनाया जा सकेगा.
हर ऐप्लिकेशन के लिए भाषा की अपने-आप पहचान होने की सुविधा डिफ़ॉल्ट रूप से बंद होती है. इस सुविधा को चालू करने के लिए, मॉड्यूल-लेवल की build.gradle.kts फ़ाइल (अगर Groovy का इस्तेमाल किया जा रहा है, तो build.gradle फ़ाइल) के androidResources {} ब्लॉक में मौजूद generateLocaleConfig सेटिंग का इस्तेमाल करें:
Android Lint में JVM 17 को टारगेट करने वाला बाइटकोड शामिल है
AGP 8.1.0-alpha04 से शुरू होने वाले Android Lint में, JVM 17 को टारगेट करने वाला बाइटकोड शामिल है. अगर आपको कस्टम लिंट चेक लिखने हैं, तो आपको JDK 17 या इसके बाद के वर्शन के साथ कंपाइल करना होगा. साथ ही, Kotlin कंपाइलर के विकल्पों में jvmTarget = '17' को शामिल करना होगा.
नेटिव लाइब्रेरी को कंप्रेस करने की सेटिंग को डीएसएल में ले जाया गया
AGP 8.1.0-alpha10 से, अगर मेनिफ़ेस्ट के बजाय डीएसएल का इस्तेमाल करके नेटिव लाइब्रेरी कंप्रेशन को कॉन्फ़िगर नहीं किया जाता है, तो आपको चेतावनी मिलेगी. नीचे दिए गए निर्देशों में, डीएसएल का इस्तेमाल करने के लिए कॉन्फ़िगरेशन अपडेट करने का तरीका बताया गया है. इन अपडेट को करने में मदद पाने के लिए, AGP अपग्रेड असिस्टेंट का इस्तेमाल करें. इसके लिए, Tools > AGP Upgrade Assistant पर जाएं.
बिना कंप्रेस की गई नेटिव लाइब्रेरी का इस्तेमाल करने के लिए, मेनिफ़ेस्ट से android::extractNativeLibs एट्रिब्यूट हटाएं. इसके बाद, मॉड्यूल-लेवल की build.gradle.kts फ़ाइल में यह कोड जोड़ें. अगर Groovy का इस्तेमाल किया जा रहा है, तो build.gradle फ़ाइल में यह कोड जोड़ें:
इस विकल्प को चालू करने पर, अगर कोई साइनिंग कॉन्फ़िगरेशन नहीं दिया जाता है, तो AGP, प्रोफ़ाइल बनाने या डीबग करने लायक बिल्ड को चलाने के लिए, डिफ़ॉल्ट डीबग साइनिंग कॉन्फ़िगरेशन का इस्तेमाल करता है. यह फ़्लैग डिफ़ॉल्ट रूप से बंद होता है, ताकि बिल्ड के लेखकों को खास प्रोफ़ाइलिंग साइनिंग कॉन्फ़िगरेशन के बारे में बताने के लिए बढ़ावा दिया जा सके.
android.experimental.library.desugarAndroidTest
AGP 8.0
false
इस फ़्लैग की मदद से, लाइब्रेरी बनाने वाले लोग टेस्ट APK के लिए, मुख्य लाइब्रेरी के डेसुगरिंग की सुविधा चालू कर सकते हैं. इससे, तैयार किए गए एएआर पर कोई असर नहीं पड़ता. उदाहरण के लिए, लिंटिंग के ज़रिए.
हम आने वाले समय में, Variant API में इस सुविधा को उपलब्ध कराने के लिए काम कर रहे हैं.
इस सेटिंग के चालू होने पर, Gradle Managed Devices की मदद से उपयोगकर्ता के तय किए गए कस्टम डिवाइस टाइप का इस्तेमाल किया जा सकता है. यह टाइप, प्लगिन के ज़रिए उपलब्ध कराया जा सकता है. अगर आपको Firebase Test Lab प्लगिन का इस्तेमाल करना है, तो इस फ़्लैग को चालू करना होगा.
android.lint.printStackTrace
AGP 8.0
false
अगर यह विकल्प चालू है, तो Android Lint क्रैश होने पर स्टैकट्रेस प्रिंट करता है. इस फ़्लैग में, LINT_PRINT_STACKTRACE एनवायरमेंट वैरिएबल जैसी ही सुविधाएं होती हैं.
इससे यह तय किया जाता है कि किसी भी समय, Gradle मैनेज किए गए ज़्यादा से ज़्यादा कितने डिवाइस (एवीडी) चालू हो सकते हैं. अगर वैल्यू 0 या
नेगेटिव है, तो डिवाइसों की ज़्यादा से ज़्यादा संख्या तय नहीं की जाती.
[AGP 8.1.0] ./gradlew test फ़ेल हो जाता है. साथ ही, "Unable to find manifest output" मैसेज दिखता है. ऐसा तब होता है, जब splits.abi.isEnable और testOptions.unitTests.isIncludeAndroidResources, दोनों को सही पर सेट किया गया हो
[AGP 8.1.0] ./gradlew test फ़ेल हो जाता है. साथ ही, "Unable to find manifest output" मैसेज दिखता है. ऐसा तब होता है, जब splits.abi.isEnable और testOptions.unitTests.isIncludeAndroidResources, दोनों को सही पर सेट किया गया हो
जब सबप्रोजेक्ट की क्लास को आर्टफ़ैक्ट ट्रांसफ़ॉर्म के ज़रिए पहले ही डेक्स किया जा चुका हो, तब उन पर डेक्सिंग टास्क न चलाएं
इस पेज पर मौजूद कॉन्टेंट और कोड सैंपल कॉन्टेंट के लाइसेंस में बताए गए लाइसेंस के हिसाब से हैं. Java और OpenJDK, Oracle और/या इससे जुड़ी हुई कंपनियों के ट्रेडमार्क या रजिस्टर किए हुए ट्रेडमार्क हैं.
आखिरी बार 2025-08-08 (UTC) को अपडेट किया गया.
[[["समझने में आसान है","easyToUnderstand","thumb-up"],["मेरी समस्या हल हो गई","solvedMyProblem","thumb-up"],["अन्य","otherUp","thumb-up"]],[["वह जानकारी मौजूद नहीं है जो मुझे चाहिए","missingTheInformationINeed","thumb-down"],["बहुत मुश्किल है / बहुत सारे चरण हैं","tooComplicatedTooManySteps","thumb-down"],["पुराना","outOfDate","thumb-down"],["अनुवाद से जुड़ी समस्या","translationIssue","thumb-down"],["सैंपल / कोड से जुड़ी समस्या","samplesCodeIssue","thumb-down"],["अन्य","otherDown","thumb-down"]],["आखिरी बार 2025-08-08 (UTC) को अपडेट किया गया."],[],[]]