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

बग समाधान

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