Android Gradle प्लगिन 3.2.0 (सितंबर 2018)

Android प्लगिन के इस वर्शन के लिए, ये ज़रूरी शर्तें पूरी होनी चाहिए:

सबसे पुराना वर्शन डिफ़ॉल्ट वर्शन नोट
ग्रेडल 4.6 4.6 ज़्यादा जानकारी के लिए, Gradle को अपडेट करने का तरीका देखें.
एसडीके बिल्ड टूल 28.0.3 28.0.3 इंस्टॉल करें या कॉन्फ़िगर करें एसडीके बिल्ड टूल.

3.2.1 (अक्टूबर 2018)

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

नई सुविधाएं

  • Android ऐप्लिकेशन बंडल बनाने की सुविधा: ऐप्लिकेशन बंडल, अपलोड करने का एक नया फ़ॉर्मैट है. इसमें आपके ऐप्लिकेशन का कंपाइल किया गया सारा कोड और संसाधन शामिल होते हैं. साथ ही, Google Play Store पर APK जनरेट करने और उस पर साइन करने की प्रोसेस को टाला जा सकता है. अब आपको एक से ज़्यादा APK बनाने, उन पर साइन करने, और उन्हें मैनेज करने की ज़रूरत नहीं है. साथ ही, उपयोगकर्ताओं को अपने डिवाइस के लिए ऑप्टिमाइज़ किए गए छोटे डाउनलोड मिलते हैं. ज़्यादा जानने के लिए, Android ऐप्लिकेशन बंडल के बारे में जानकारी पढ़ें.

  • एनोटेशन प्रोसेसर का इस्तेमाल करते समय, इंक्रीमेंटल बिल्ड की स्पीड बेहतर करने की सुविधा: AnnotationProcessorOptions DSL अब CommandLineArgumentProvider का इस्तेमाल करता है. इससे, या तो आप या एनोटेशन प्रोसेसर का लेखक, इंक्रीमेंटल बिल्ड प्रॉपर्टी टाइप एनोटेशन का इस्तेमाल करके, प्रोसेसर के लिए आर्ग्युमेंट को एनोटेट कर सकता है. . इन एनोटेशन का इस्तेमाल करने से, इंक्रीमेंटल और कैश किए गए क्लीन बिल्ड की परफ़ॉर्मेंस और सटीकता बेहतर होती है. ज़्यादा जानने के लिए, एनोटेशन प्रोसेसर को आर्ग्युमेंट पास करना लेख पढ़ें.

  • AndroidX के लिए माइग्रेशन टूल: Android 3.2 और इसके बाद वाले वर्शन के साथ Android Gradle प्लगिन 3.2.0 का इस्तेमाल करते समय, अपने प्रोजेक्ट की लोकल और मेवन डिपेंडेंसी को नई AndroidX लाइब्रेरी का इस्तेमाल करने के लिए माइग्रेट किया जा सकता है. इसके लिए, मेन्यू बार में जाकर रीफ़ैक्टर करें > AndroidX पर माइग्रेट करें को चुनें. इस माइग्रेशन टूल का इस्तेमाल करने से, आपकी gradle.properties फ़ाइल में ये फ़्लैग भी true पर सेट हो जाते हैं:

    • android.useAndroidX: जब इसे true पर सेट किया जाता है, तो Android प्लगिन, सपोर्ट लाइब्रेरी के बजाय सही AndroidX लाइब्रेरी का इस्तेमाल करता है. जब यह फ़्लैग तय नहीं किया जाता है, तो प्लगिन इसे डिफ़ॉल्ट रूप से false पर सेट कर देता है.

    • android.enableJetifier: जब इसे true पर सेट किया जाता है, तो Android प्लगिन, मौजूदा तीसरे पक्ष की लाइब्रेरी को उनके बाइनरी कोड को फिर से लिखकर, AndroidX का इस्तेमाल करने के लिए अपने-आप माइग्रेट कर देता है. जब यह फ़्लैग तय नहीं किया जाता है, तो प्लगिन इसे डिफ़ॉल्ट रूप से false पर सेट कर देता है. इस फ़्लैग को सिर्फ़ तब true पर सेट किया जा सकता है, जब android.useAndroidX को भी true पर सेट किया गया हो. ऐसा न करने पर, आपको बिल्ड से जुड़ी गड़बड़ी का मैसेज मिलेगा.

      ज़्यादा जानने के लिए, AndroidX की खास जानकारी लेख पढ़ें.

  • कोड श्रिंक करने वाला नया टूल, R8: R8, कोड श्रिंक करने और उसे अस्पष्ट करने का एक नया टूल है. यह ProGuard की जगह इस्तेमाल किया जाता है. R8 के प्रीव्यू वर्शन का इस्तेमाल करने के लिए, अपने प्रोजेक्ट की gradle.properties फ़ाइल में यह कोड शामिल करें:

            android.enableR8 = true
            
            android.enableR8 = true
            

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

  • D8 के साथ डिसुगरिंग की सुविधा अब डिफ़ॉल्ट रूप से चालू है.

  • AAPT2 अब Google के मेवन डेटाबेस पर उपलब्ध है. AAPT2 का इस्तेमाल करने के लिए, पक्का करें कि आपकी build.gradle फ़ाइल में google() डिपेंडेंसी हो. यह डिपेंडेंसी, यहां दिखाई गई है:

              buildscript {
                    repositories {
                        google() // here
                        jcenter()
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.2.0'
                    }
                }
                allprojects {
                    repositories {
                        google() // and here
                        jcenter()
                }
              
              buildscript {
                    repositories {
                        google() // here
                        jcenter()
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.2.0'
                    }
                }
                allprojects {
                    repositories {
                        google() // and here
                        jcenter()
                }
              
  • नेटिव मल्टीडेक्स की सुविधा अब डिफ़ॉल्ट रूप से चालू है. Android Studio के पिछले वर्शन में, Android API लेवल 21 या इसके बाद वाले वर्शन पर काम करने वाले डिवाइस पर, ऐप्लिकेशन का डीबग वर्शन डिप्लॉय करते समय, नेटिव मल्टीडेक्स की सुविधा चालू हो जाती थी. अब, चाहे किसी डिवाइस पर डिप्लॉय किया जा रहा हो या रिलीज़ के लिए APK बनाया जा रहा हो, Android Gradle प्लगिन उन सभी मॉड्यूल के लिए नेटिव मल्टीडेक्स की सुविधा चालू कर देता है जिनके लिए minSdkVersion=21 या इसके बाद का वर्शन सेट किया गया है.

  • प्लगिन अब protobuf प्लगिन (0.8.6), Kotlin प्लगिन (1.2.50) और Crashlytics प्लगिन (1.25.4) के सबसे नए वर्शन का इस्तेमाल करने की ज़रूरी शर्त लागू करता है.

  • फ़़ीचर मॉड्यूल प्लगिन,com.android.feature, अब मॉड्यूल का नाम तय करते समय, सिर्फ़ अक्षरों, अंकों, और अंडरस्कोर का इस्तेमाल करने की ज़रूरी शर्त लागू करता है. उदाहरण के लिए, अगर आपके फ़ीचर मॉड्यूल के नाम में डैश शामिल हैं, आपको बिल्ड से जुड़ी गड़बड़ी का मैसेज मिलेगा. यह सेटिंग, डाइनैमिक फ़ीचर प्लगिन की सेटिंग से मेल खाती है.

गड़बड़ियां ठीक की गईं