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

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

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

3.2.1 (अक्टूबर 2018)

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

नई सुविधाएं

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

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

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

    • android.useAndroidX: true पर सेट होने पर, Android प्लगिन का इस्तेमाल करने के लिए किया जा सकता है. जब यह फ़्लैग मौजूद नहीं है, तो प्लग इन इसे डिफ़ॉल्ट रूप से 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 के 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 के पिछले वर्शन किसी ऐप्लिकेशन के डीबग वर्शन को Android एपीआई लेवल 21 या उसके बाद के वर्शन वाले डिवाइस पर. अब, चाहे आप किसी ऐप्लिकेशन बनाना या रिलीज़ करने के लिए APK बनाना, Android Gradle प्लग इन सेट किए गए सभी मॉड्यूल के लिए नेटिव मल्टीडेक्स को चालू करता है minSdkVersion=21 या उससे ज़्यादा.

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

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

बग समाधान

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