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

Android प्लग इन के इस वर्शन के लिए इनकी ज़रूरत होती है:

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

3.2.1 (अक्टूबर 2018)

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

नई सुविधाएं

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

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

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

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

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

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

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

            android.enableR8 = true
            
            android.enableR8 = true
            

उपयोगकर्ता के व्यवहार में बदलाव

  • D8 की मदद से, शर्करा हटाने की सुविधा अब डिफ़ॉल्ट रूप से चालू है.

  • AAPT2 अब Google के Maven रिपो में शामिल है. 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, अब मॉड्यूल का नाम बताते समय सिर्फ़ अक्षरों, अंकों, और अंडरस्कोर का इस्तेमाल करने की ज़रूरी शर्त लागू करता है. उदाहरण के लिए, अगर आपके फ़ीचर मॉड्यूल के नाम में डैश शामिल हैं, तो आपको बिल्ड करने से जुड़ी गड़बड़ी का मैसेज मिलेगा. यह व्यवहार, डाइनैमिक सुविधा प्लगिन से मेल खाता है.

बग समाधान

  • डेटा बाइंडिंग वाले प्रोजेक्ट में, JavaCompile को अब कैश मेमोरी में सेव किया जा सकता है. (समस्या #69243050)
  • डेटा बाइंडिंग वाले लाइब्रेरी मॉड्यूल के लिए, बेहतर तरीके से कंपाइल करने से बचना. (समस्या #77539932)
  • अगर आपने पहले के वर्शन में, बिल्ड से जुड़ी कुछ गड़बड़ियों की वजह से, ज़रूरत के हिसाब से कॉन्फ़िगर करें सुविधा को बंद किया था, तो अब इसे फिर से चालू किया जा सकता है. (समस्या #77910727)