Android Gradle प्लग इन 8.0.0 (अप्रैल 2023)

Android Gradle प्लग इन 8.0.0 एक मुख्य रिलीज़ है. इसमें कई नई सुविधाएं और सुधार शामिल हैं.

इनके साथ काम करता है

कम से कम वर्शन डिफ़ॉल्ट वर्शन नोट
Gradle 8.0 8.0 ज़्यादा जानने के लिए, Gradle को अपडेट करने का तरीका देखें.
एसडीके बिल्ड टूल 30.0.3 30.0.3 एसडीके बिल्ड टूल इंस्टॉल करें या कॉन्फ़िगर करें.
एनडीके लागू नहीं 25.1.8937393 एनडीके का कोई दूसरा वर्शन इंस्टॉल करें या कॉन्फ़िगर करें.
जेडीके 17 17 ज़्यादा जानने के लिए, जेडीके वर्शन सेट करना लेख पढ़ें.

पैच रिलीज़

यहां Android Gradle प्लग इन 8.0 के लिए पैच रिलीज़ की सूची दी गई है.

Android Gradle प्लग इन 8.0.2 (मई 2023)

AGP 8.0.2 में ठीक की गई गड़बड़ियों की सूची देखने के लिए, Android Studio 2022.2.1 में ठीक की गई गड़बड़ियों पर जाएं.

Android Gradle प्लग इन 8.0.1 (मई 2023)

इस छोटे अपडेट में, इन गड़बड़ियों को ठीक किया गया है:

ठीक की गई समस्याएं
गड़बड़ी: AGP 7.2.2 से 7.4.0 पर अपग्रेड करने के बाद, "टेबल में दिए गए आईडी के साथ कोई VersionRequirement नहीं है"
R8 NullPointerException at markTypeAsLive AGP 7.4.1
[R8 4.0.53] Android 11 पर क्लास की पुष्टि नहीं हो सकी

अहम बदलाव: मॉड्यूल-लेवल की बिल्ड स्क्रिप्ट में नेमस्पेस की ज़रूरत होगी

आपको मेनिफ़ेस्ट फ़ाइल के बजाय, मॉड्यूल-लेवल की build.gradle.kts फ़ाइल में नेमस्पेस सेट करना होगा. AGP 7.3 या इसके बाद के वर्शन में, namespace डीएसएल प्रॉपर्टी का इस्तेमाल किया जा सकता है. ज़्यादा जानने के लिए, नेमस्पेस सेट करने का तरीका देखें.

नेमसpace DSL पर माइग्रेट करते समय, इन समस्याओं के बारे में जानें:

  • AGP के पिछले वर्शन में, कुछ मामलों में मुख्य नेमस्पेस या ऐप्लिकेशन आईडी से टेस्ट नेमस्पेस का अनुमान गलत तरीके से लगाया जाता है. अगर AGP अपग्रेड असिस्टेंट को पता चलता है कि आपके प्रोजेक्ट का मुख्य नेमस्पेस और टेस्ट नेमस्पेस एक ही है, तो वह अपग्रेड को ब्लॉक कर देता है. अगर अपग्रेड करने की सुविधा ब्लॉक कर दी गई है, तो आपको testNamespace को मैन्युअल तरीके से बदलना होगा और अपने सोर्स कोड में उसके हिसाब से बदलाव करना होगा.
  • टेस्ट नेमस्पेस बदलने के बाद, ऐसा हो सकता है कि आपका कोड कंपाइल हो जाए, लेकिन इंस्ट्रुमेंट की गई टेस्ट, रनटाइम में फ़ेल हो जाएं. ऐसा तब हो सकता है, जब आपके इंस्ट्रुमेंट किए गए टेस्ट के सोर्स कोड में, androidTest और ऐप्लिकेशन, दोनों सोर्स में तय किए गए किसी संसाधन का रेफ़रंस दिया गया हो.

ज़्यादा जानकारी के लिए, समस्या #191813691 टिप्पणी #19 देखें.

बदलावों के बारे में जानकारी: बिल्ड के विकल्प की डिफ़ॉल्ट वैल्यू

AGP 8.0 से, इन फ़्लैग की डिफ़ॉल्ट वैल्यू बदल गई हैं, ताकि बिल्ड की परफ़ॉर्मेंस को बेहतर बनाया जा सके. इनमें से कुछ बदलावों के साथ काम करने के लिए, अपने कोड में बदलाव करने से जुड़ी मदद पाने के लिए, AGP अपग्रेड असिस्टेंट (टूल > AGP अपग्रेड असिस्टेंट) का इस्तेमाल करें. अपग्रेड असिस्टेंट, नए व्यवहार के हिसाब से कोड को अपडेट करने या पिछले व्यवहार को बनाए रखने के लिए फ़्लैग सेट करने में आपकी मदद करती है.

चिह्नित करें नई डिफ़ॉल्ट वैल्यू पिछली डिफ़ॉल्ट वैल्यू नोट
android.defaults.buildfeatures.buildconfig false true AGP 8.0, डिफ़ॉल्ट रूप से BuildConfig जनरेट नहीं करता है. आपको इस विकल्प को उन प्रोजेक्ट में डीएसएल का इस्तेमाल करके सेट करना होगा जहां इसकी ज़रूरत है.
android.defaults.buildfeatures.aidl false true AGP 8.0 में, AIDL की सुविधा डिफ़ॉल्ट रूप से चालू नहीं होती. आपको इस विकल्प को उन प्रोजेक्ट में डीएसएल का इस्तेमाल करके सेट करना होगा जहां इसकी ज़रूरत है. इस फ़्लैग को AGP 9.0 में हटाने का प्लान है.
android.defaults.buildfeatures.renderscript false true AGP 8.0 में, RenderScript की सुविधा डिफ़ॉल्ट रूप से चालू नहीं होती है. आपको इस विकल्प को उन प्रोजेक्ट में डीएसएल का इस्तेमाल करके सेट करना होगा जहां इसकी ज़रूरत है. इस फ़्लैग को AGP 9.0 में हटाने का प्लान है.
android.nonFinalResIds true false AGP 8.0, डिफ़ॉल्ट रूप से नॉन-फ़ाइनल फ़ील्ड वाली R क्लास जनरेट करता है.
android.nonTransitiveRClass true false AGP 8.0, सिर्फ़ मौजूदा मॉड्यूल में तय किए गए संसाधनों के लिए R क्लास जनरेट करता है.
android.enableR8.fullMode true false AGP 8.0 में, R8 का फ़ुल मोड डिफ़ॉल्ट रूप से चालू होता है. ज़्यादा जानकारी के लिए, R8 का फ़ुल मोड देखें.

बदलाव: बिल्ड के विकल्प की वैल्यू लागू की गई हैं

AGP 8.0 से, इन फ़्लैग की वैल्यू नहीं बदली जा सकतीं. अगर आपने इन्हें gradle.properties फ़ाइल में शामिल किया है, तो वैल्यू को अनदेखा कर दिया जाता है और एजीपी चेतावनियां दिखाता है.

चिह्नित करें लागू की गई वैल्यू नोट
android.dependencyResolutionAtConfigurationTime.warn true अगर AGP 8.0 को कॉन्फ़िगरेशन फ़ेज़ के दौरान कॉन्फ़िगरेशन रिज़ॉल्यूशन का पता चलता है, तो वह चेतावनी जारी करता है. ऐसा इसलिए, क्योंकि इससे Gradle कॉन्फ़िगरेशन के समय पर बुरा असर पड़ता है.
android.r8.failOnMissingClasses true अगर बेहतर DEX ऑप्टिमाइज़ेशन के लिए कुछ क्लास मौजूद नहीं हैं, तो AGP 8.0, R8 का इस्तेमाल करने वाले बिल्ड को फ़ेल कर देता है. इसके लिए, आपको -dontwarn नियमों को बनाए रखना होगा या जो लाइब्रेरी मौजूद नहीं हैं उन्हें जोड़ना होगा. ज़्यादा जानकारी के लिए, R8 श्रिंक करने वाले टूल में क्लास से जुड़ी चेतावनियां मौजूद नहीं हैं लेख पढ़ें.
android.testConfig.useRelativePath true यूनिट टेस्ट में Android के संसाधनों, ऐसेट, और मेनिफ़ेस्ट का इस्तेमाल करने की सुविधा चालू होने पर, AGP 8.0 एक test_config.properties फ़ाइल जनरेट करता है. इसमें सिर्फ़ रिलेटिव पाथ होते हैं. इससे यह पक्का होता है कि Android यूनिट टेस्ट हमेशा Gradle की बिल्ड कैश मेमोरी का इस्तेमाल कर सकें.
android.useNewJarCreator true AGP, JAR फ़ाइलें बनाते समय Zipflinger लाइब्रेरी का इस्तेमाल करता है, ताकि बिल्ड की परफ़ॉर्मेंस को बेहतर बनाया जा सके.
android.bundletool.includeRepositoriesInDependencyReport true जब AAB और APK में एसडीके की डिपेंडेंसी की जानकारी जोड़ने की सुविधा चालू होती है, तो AGP 8.0 इस जानकारी में प्रोजेक्ट रिपॉज़िटरी की सूची भी जोड़ता है. ज़्यादा जानने के लिए, Play Console के लिए डिपेंडेंसी की जानकारी देखें.
android.enableArtProfiles true अब बेसलाइन प्रोफ़ाइलें हमेशा जनरेट की जाती हैं. ज़्यादा जानकारी के लिए, बेसलाइन प्रोफ़ाइलें देखें.
android.enableNewResourceShrinker true डिफ़ॉल्ट रूप से, नए रिसॉर्स श्रिंकर को लागू करने की सुविधा का इस्तेमाल करें. नए रिसॉर्स श्रिंकर में, डाइनैमिक सुविधाओं के लिए सहायता शामिल है.
android.enableSourceSetPathsMap true इस कुकी का इस्तेमाल, रिलेटिव रिसॉर्स पाथ मैपिंग का हिसाब लगाने के लिए किया जाता है. इससे Gradle बिल्ड ज़्यादा बार अप-टू-डेट होते हैं.
android.cacheCompileLibResources true कंपाइल की गई लाइब्रेरी के संसाधनों को अब डिफ़ॉल्ट रूप से कैश मेमोरी में सेव किया जा सकता है. ऐसा इसलिए, क्योंकि Gradle प्रोजेक्ट की लोकेशन के हिसाब से संसाधन फ़ाइलों को ट्रैक करता है. इसके लिए, android.enableSourceSetPathsMap चालू होना ज़रूरी है.
android.disableAutomaticComponentCreation true AGP 8.0, डिफ़ॉल्ट रूप से कोई SoftwareComponent नहीं बनाता है. इसके बजाय, AGP सिर्फ़ उन वैरिएंट के लिए SoftwareComponents बनाता है जिन्हें पब्लिशिंग डीएसएल का इस्तेमाल करके पब्लिश करने के लिए कॉन्फ़िगर किया गया है.

एक्ज़ीक्यूशन प्रोफ़ाइल के लिए नया स्टेबल फ़्लैग

AGP में नया फ़्लैग android.settings.executionProfile शामिल है. इस फ़्लैग का इस्तेमाल करके, SettingsExtension से डिफ़ॉल्ट एक्ज़ीक्यूशन प्रोफ़ाइल को बदला जा सकता है. ज़्यादा जानने के लिए, सेटिंग प्लगिन का दस्तावेज़ पढ़ें.

एक्सपेरिमेंट के तौर पर उपलब्ध फ़्लैग की झलक देखने के लिए, झलक देखने से जुड़ी जानकारी देखें.

Kotlin में लेज़ी प्रॉपर्टी असाइनमेंट की सुविधा काम नहीं करती

अगर बिल्ड स्क्रिप्ट के लिए Gradle के Kotlin DSL का इस्तेमाल किया जा रहा है, तो ध्यान दें कि Android Studio और AGP 8.0, = ऑपरेटर का इस्तेमाल करके एक्सपेरिमेंटल प्रॉपर्टी असाइन करने की सुविधा के साथ काम नहीं करते. इस सुविधा के बारे में ज़्यादा जानने के लिए, रिलीज़ नोट और दस्तावेज़ देखें.

Build Analyzer की टास्क कैटगरी

Android Studio Flamingo से, Build Analyzer में उन टास्क के लिए नया डिफ़ॉल्ट व्यू उपलब्ध है जिनसे बिल्ड में लगने वाले समय पर असर पड़ता है. अगर आपके प्रोजेक्ट में AGP 8.0 या इसके बाद के वर्शन का इस्तेमाल किया जाता है, तो Build Analyzer टास्क को अलग-अलग दिखाने के बजाय, उन्हें कैटगरी के हिसाब से ग्रुप करता है. उदाहरण के लिए, Android रिसॉर्स, Kotlin या Dexing से जुड़े टास्क को एक साथ ग्रुप किया जाता है. इसके बाद, उन्हें बिल्ड की अवधि के हिसाब से क्रम में लगाया जाता है. इससे यह जानना आसान हो जाता है कि किस कैटगरी का असर, बिल्ड टाइम पर सबसे ज़्यादा पड़ता है. हर कैटगरी को बड़ा करने पर, उससे जुड़े टास्क की सूची दिखती है. टास्क को ग्रुप में न दिखाकर अलग-अलग दिखाने के लिए, इसके हिसाब से ग्रुप करें ड्रॉप-डाउन का इस्तेमाल करें.

Build Analyzer टास्क की कैटगरी.

सेटिंग का नया प्लगिन

AGP 8.0.0-alpha09 में, नया सेटिंग प्लगिन जोड़ा गया है. सेटिंग प्लगिन की मदद से, ग्लोबल कॉन्फ़िगरेशन को एक जगह पर मैनेज किया जा सकता है. ग्लोबल कॉन्फ़िगरेशन, ऐसे कॉन्फ़िगरेशन होते हैं जो सभी मॉड्यूल पर लागू होते हैं. इससे आपको कई मॉड्यूल में कॉन्फ़िगरेशन को कॉपी करके चिपकाने की ज़रूरत नहीं पड़ती. इसके अलावा, सेटिंग प्लगिन का इस्तेमाल करके, टूल एक्ज़ीक्यूशन प्रोफ़ाइलें बनाई जा सकती हैं. साथ ही, टूल को चलाने के तरीके के बारे में अलग-अलग निर्देश दिए जा सकते हैं और उनके बीच स्विच किया जा सकता है.

सेटिंग प्लगिन का इस्तेमाल करने के लिए, settings.gradle फ़ाइल में प्लगिन लागू करें:

apply plugin 'com.android.settings'

ग्लोबल कॉन्फ़िगरेशन को एक जगह पर मैनेज करना

ग्लोबल कॉन्फ़िगरेशन को कॉन्फ़िगर करने के लिए, settings.gradle फ़ाइल में मौजूद नए android ब्लॉक का इस्तेमाल करें. यहां एक उदाहरण दिया गया है:

android {
  compileSdk 31
  minSdk 28
  ...
}

टूल एक्ज़ीक्यूशन प्रोफ़ाइल

सेटिंग प्लगिन की मदद से, कुछ टूल के लिए एक्ज़ीक्यूशन प्रोफ़ाइलें भी बनाई जा सकती हैं. एक्ज़ीक्यूशन प्रोफ़ाइल से यह तय होता है कि टूल कैसे चलाया जाएगा. एनवायरमेंट के हिसाब से, अलग-अलग एक्ज़ीक्यूशन प्रोफ़ाइल चुनी जा सकती हैं. एक्ज़ीक्यूशन प्रोफ़ाइल में, किसी टूल के लिए JVM आर्ग्युमेंट सेट किए जा सकते हैं. साथ ही, इसे किसी अलग प्रोसेस में चलाने के लिए कॉन्फ़िगर किया जा सकता है. फ़िलहाल, सिर्फ़ R8 टूल का इस्तेमाल किया जा सकता है.

एक्ज़ीक्यूशन प्रोफ़ाइलें बनाएं और settings.gradle फ़ाइल में डिफ़ॉल्ट एक्ज़ीक्यूशन प्रोफ़ाइल सेट करें. इसके लिए, यहां दिया गया उदाहरण देखें:

android {
  execution {
    profiles {
      high {
        r8 {
          jvmOptions += ["-Xms2048m", "-Xmx8192m", "-XX:+HeapDumpOnOutOfMemoryError"]
          runInSeparateProcess true
        }
      }
      low {
        r8 {
          jvmOptions += ["-Xms256m", "-Xmx2048m", "-XX:+HeapDumpOnOutOfMemoryError"]
          runInSeparateProcess true
        }
      }
      ci {
        r8.runInSeparateProcess false
      }
    }
    defaultProfile "low"
  }
}

डिफ़ॉल्ट प्रोफ़ाइल को बदलने के लिए, gradle.properties फ़ाइल में मौजूद android.experimental.settings.executionProfile प्रॉपर्टी का इस्तेमाल करके, कोई दूसरी प्रोफ़ाइल चुनें:

android.experimental.settings.executionProfile=high

इस प्रॉपर्टी को कमांड लाइन का इस्तेमाल करके भी सेट किया जा सकता है. इससे अलग-अलग वर्कफ़्लो सेट अप किए जा सकते हैं. उदाहरण के लिए, अगर आपके पास कंटीन्यूअस इंटिग्रेशन वर्कफ़्लो है, तो settings.gradle फ़ाइल में बदलाव किए बिना, कमांड लाइन का इस्तेमाल करके एक्ज़ीक्यूशन प्रोफ़ाइल बदली जा सकती है:

./gradlew assembleRelease \
  -Pandroid.experimental.settings.executionProfile=ci

AGP 8.0 को चलाने के लिए JDK 17 ज़रूरी है

Android Gradle Plugin 8.0 का इस्तेमाल करके ऐप्लिकेशन बनाने के लिए, अब Gradle को चलाने के लिए JDK 17 की ज़रूरत होती है. Android Studio Flamingo में JDK 17 बंडल होता है. साथ ही, Gradle को डिफ़ॉल्ट रूप से इसका इस्तेमाल करने के लिए कॉन्फ़िगर किया जाता है. इसका मतलब है कि Android Studio के ज़्यादातर उपयोगकर्ताओं को अपने प्रोजेक्ट में कॉन्फ़िगरेशन से जुड़े कोई भी बदलाव करने की ज़रूरत नहीं होती.

अगर आपको Android Studio में AGP के लिए इस्तेमाल किए जाने वाले JDK वर्शन को मैन्युअल तरीके से सेट करना है, तो आपको JDK 17 या उसके बाद वाले वर्शन का इस्तेमाल करना होगा.

Android Studio से अलग AGP का इस्तेमाल करते समय, JDK के वर्शन को अपग्रेड करें. इसके लिए, JAVA_HOME एनवायरमेंट वैरिएबल या -Dorg.gradle.java.home कमांड-लाइन विकल्प को JDK 17 की इंस्टॉलेशन डायरेक्ट्री पर सेट करें.

ठीक की गई समस्याएं

Android Gradle प्लग इन 8.0.0

ठीक की गई समस्याएं
Android Gradle प्लगिन
MergeResources टास्क में बिल्ड फ़ेल होने की समस्या
JavaPluginConvention और HasConvention अब काम नहीं करते
नए Transform API के लिए फ़ाइल की जगह गलत है और उसमें अंतर है
Android Gradle प्लग इन को, GUtil.toWords(string) फ़ंक्शन का इस्तेमाल नहीं करना चाहिए. यह फ़ंक्शन अब काम नहीं करता
Android Gradle प्लगिन को, ConfigureUtil.configure(closure, target) फ़ंक्शन का इस्तेमाल नहीं करना चाहिए. इस फ़ंक्शन का इस्तेमाल अब नहीं किया जाता
AGP टेस्ट को KGP 1.7.20-Beta का इस्तेमाल करने के लिए अपडेट करें
Gradle 7.4 काम नहीं करता (AnalyticsService का इंस्टेंस नहीं बनाया जा सका)
AGP 7.4.0-alpha09 पर, javac से मिला नया "unknown enum constant"
MergeGeneratedProguardFilesCreationAction का कॉन्फ़िगरेशन, कॉन्फ़िगरेशन कैश मेमोरी चालू होने पर भी धीमा है
[AGP] Add generated source directory to IDE model (Variant API)
JavaPluginConvention और HasConvention अब काम नहीं करते
R8 में ignorewarnings को डिफ़ॉल्ट रूप से न जोड़ें
proguard फ़ाइलें मौजूद न होने पर चेतावनी दें
AGP 7.3.0, Gradle प्लैटफ़ॉर्म प्रोजेक्ट के लिए Gradle सिंक की सुविधा काम नहीं करती
apksig लाइब्रेरी: ApkVerifier$Result.getV4SchemeSigners() को प्राइवेट के तौर पर मार्क किया गया है
अगर कवरेज चालू नहीं है, तो androidJacocoAnt कॉन्फ़िगरेशन बनाना बंद करें
लाइब्रेरी कॉम्पोनेंट में @IntDef का इस्तेमाल करने पर, aar में annotations.zip जनरेट नहीं होता
और के लिए सामान्य सुपर टाइप नहीं मिला
LINT_PRINT_STACKTRACE=true की Gradle प्रॉपर्टी का वर्शन जोड़ें
AAR में पुराने प्रीफ़ैब आर्टफ़ैक्ट पैकेज किए जा रहे हैं
डेस्टिनेशन प्रॉपर्टी से outputLocation प्रॉपर्टी पर माइग्रेट करें, ताकि डेप्रिकेशन की चेतावनी को ठीक किया जा सके और Gradle 9.0 के लिए तैयारी की जा सके
JavaCompile टास्क सेट अप करते समय, `--release` फ़्लैग को ध्यान में रखें
[AGP-7.3.0-beta03] ShrinkResourcesNewShrinkerTask तब पूरा नहीं होता है, जब एक्सएमएल एलान के बाद कोई खाली लाइन मौजूद हो
डिफ़ॉल्ट रूप से डीबग वैरिएंट में lintVital टारगेट चलता है
proguard फ़ाइलें मौजूद न होने पर चेतावनी दें
AGP, टास्क के एक्ज़ीक्यूशन फ़ेज़ में kotlinOptions.freeCompilerArgs जोड़ने की कोशिश करता है
Gradle सिंक नहीं हो सका: सिंक नहीं हो सका: वजह पता नहीं
DependencyReportTask, कॉन्फ़िगरेशन कैश मेमोरी के साथ काम नहीं करता
build.gradle में resValue का इस्तेमाल करके संसाधनों को बदलने पर, यह गड़बड़ी दिखती है: डुप्लीकेट संसाधन
'debug' बिल्ड टाइप में डिफ़ॉल्ट साइनिंग कुंजी होती है, जबकि अन्य में नहीं होती
डाइनैमिक सुविधाओं और इस्तेमाल नहीं किए जाने वाले रिसॉर्स को हटाने की प्रोसेस का इस्तेमाल करने से, रनटाइम क्रैश होता है
'debug' बिल्ड टाइप में डिफ़ॉल्ट साइनिंग कुंजी होती है, जबकि अन्य में नहीं होती
जनरेट की गई सोर्स डायरेक्ट्री, lint मॉडल के मुख्य सोर्स प्रोवाइडर में Java डायरेक्ट्री के तौर पर लिस्ट की गई है
Gradle 8.0-milestone-2 की वजह से AGP में अपवाद होता है
ऐप्लिकेशन और लाइब्रेरी के लिए, मेनिफ़ेस्ट मर्ज करने की प्रोसेस को ऑप्टिमाइज़ किया गया
javadoc जनरेशन में gradle-settings-api जोड़ना
AGP 7.4.0-alpha09 पर, javac से मिला नया "unknown enum constant"
AGP 7.4.0-alpha09, ऐसी बिल्ड जनरेट करता है जिन्हें Firebase App Distribution में अपलोड नहीं किया जा सकता
मॉड्यूल में मौजूद lint.xml फ़ाइल को, लिंट टास्क के UP-TO-DATE चेक के लिए नहीं माना जाता
Android Gradle प्लग इन 7.0 और इसके बाद के वर्शन और Android टेस्ट से जुड़ी समस्या: संसाधन नहीं मिला: id
configureCMakeDebug फ़ंक्शन, null pointer exception की वजह से कभी-कभी क्रैश हो जाता है
IllegalAccessError upgrading project to AS2022.2.1.5, FireBasePerfPlugin
सिंक नहीं हो सका. गड़बड़ी का मैसेज "Collection contains no element matching the predicate." मिला है.
इंस्ट्रूमेंटेशन एपीआई, लोकल फ़ाइल डिपेंडेंसी को नहीं बदलता
7.4 Beta 1 पर अपडेट करते समय, `AnnotationProcessorOptions.arguments are queried` गड़बड़ी
Gradle के सार्वजनिक प्लगिन को gradle-api में ले जाएं और BasePlugin.getExtension को हटाएं
r8.jvmArgs का इस्तेमाल नहीं किया जाता
AGP के लिए, JDK17 का कम से कम वर्शन ज़रूरी है
AGP 8.0.0 A8, बेसलाइन प्रोफ़ाइल को तोड़ता है
AGP 8.0 में CheckAarMetadataTask मैसेज में 'compileSdkVersion' को 'compileSdk' में बदलें
AGP 7.4.0-rc01, Variant API को "Querying the mapped value of map(provider(java.util.Set)) before task '...' has completed is not supported" के साथ ब्रेक करता है
कॉन्फ़िगरेशन कैश मेमोरी के साथ `com.android.build.gradle.tasks.ShaderCompile` से जुड़ी समस्याएं
AGP API का इस्तेमाल करके Java संसाधनों को जोड़ने से कॉन्फ़िगरेशन कैश काम नहीं करता
Lint प्लगिन, gradle-api का हिस्सा नहीं है
DexingFileDependenciesTask.outputKeepRules एक डायरेक्ट्री है, लेकिन इसे OutputFile के तौर पर मार्क किया गया है
AGP 7.4 पर अपग्रेड करने से StackOverflowError होता है
processDebugUnitTestManifest, टेस्ट वैरिएंट के लिए मेनिफ़ेस्ट प्लेसहोल्डर के साथ काम नहीं कर रहा है
Lint, बिना किसी निर्भरता के सोर्स सेट की जानकारी ऐक्सेस करता है
बिल्ड की गड़बड़ी, एपीआई लेवल 34 से जुड़ी है. हालांकि, यह मौजूद नहीं है
"हमारा सुझाव है कि Android Gradle प्लगिन के नए वर्शन का इस्तेमाल करें" मैसेज तब दिखता है, जब कोई नया वर्शन उपलब्ध नहीं होता
android.injected.testOnly=false काम नहीं करता
Dexer (D8)
AS Canary 6 से 7 पर अपग्रेड करने के बाद, ग्लोबल सिंथेटिक से जुड़ी Dex मर्ज करने की गड़बड़ी
Kotlin मेटाडेटा लाइब्रेरी को 0.6.0 वर्शन पर अपडेट किया गया
एपीआई लेवल 28 से 30 पर JDK-8272564 के लिए वर्कअराउंड की ज़रूरत है
Lint
Kotlin सोर्स के लिए, ResourceType लिंट चेक काम नहीं कर रहा है
VersionChecks, Kotlin की रेंज की जांच नहीं करता
रैप किए जाने पर, InlinedApi के लिए फ़ॉल्स पॉज़िटिव
openInputStream के बारे में, रीसाइकल करने से जुड़ी गलत पहचान की गई है
[BuildTool/Lint] ChecksSdkIntAtLeast कंस्ट्रक्टर प्रॉपर्टी की जांच करता है
लिंट: PartialResults मर्ज करने की सुविधा ठीक से काम नहीं कर रही है
Android Studio, तय किए गए वर्शन को गलत तरीके से पुराना वर्शन के तौर पर मार्क करता है.
AndroidDeprecationInspection.DeprecationFilter EP, android-plugin.xml फ़ाइल में कभी रजिस्टर नहीं किया गया
AccessibilityDetector लिंट चेक के बारे में दी गई जानकारी पुरानी है
Lint SDK_INT की जांचों को, कुछ समय के लिए इस्तेमाल किए जाने वाले लोकल वैरिएबल के बारे में पता होना चाहिए
TestMode.TYPE_ALIAS, फ़ंक्शन टाइप को टाइपएलियास से बदलता है. इस दौरान गड़बड़ी हुई
बग: जब ObjectAnimator को मौजूदा कोड ब्लॉक के बाहर बनाया जाता है, तो उसे शुरू न करने के बारे में फ़ॉल्स-पॉज़िटिव चेतावनियां मिलती हैं #38
Lint: mergeOnly मोड में Application इंस्टेंस को क्वेरी करने की वजह से NPE
NonConstantResourceId लिंट नियम, संसाधन आईडी से कॉन्स्टेंट वैल्यू असाइन करने का पता नहीं लगा सकता
व्यू आईडी पर गड़बड़ी नहीं दिख रही है
लिंट रिसॉर्स के कैश मेमोरी में सेव किए गए नतीजों को डीसीरियलाइज़ न करने पर, लिंट की गड़बड़ी होती है. हालांकि, यह चेतावनी होनी चाहिए
AGP फ़्लेमिंगो ऐल्फ़ा 8 Lint NewApi Desugar Regression
TypedArray#close (API 31) को डीसुगर नहीं किया गया है, लेकिन try-with-resources में इस्तेमाल किए जाने पर AS चेतावनी नहीं दिखाता है
लिंट, कॉल रिसीवर के लिए मान्य कास्ट की जांच नहीं करता
लिंट, सीधे तौर पर लागू किए गए इंटरफ़ेस के लिए सिर्फ़ सुरक्षित कास्ट की जांच करता है. यह इनहेरिट किए गए इंटरफ़ेस की जांच नहीं करता
Lint इंटिग्रेशन
फ़िलहाल, बेसलाइन फ़ाइल, Lint टास्क के लिए इनपुट और आउटपुट, दोनों के तौर पर काम करती है
Shrinker (R8)
CF फ़्रेम वेरिफ़ायर में NPE / assertion error
फ़ील्ड लुकअप कैश हटाने के बाद रिग्रेशन
AGP 7.4.0-beta02 में `:app:minifyVariantWithR8` से NullPointerException जनरेट होता है
R8: -allowaccessmodification विकल्प का इस्तेमाल करने पर ClassNotFoundException
मेटाडेटा में कॉन्टेक्स्ट रिसीवर के लिए सहायता जोड़ें
java.lang.VerifyError: Verifier rejected class androidx.compose.ui.graphics.colorspace.o: void androidx.compose.ui.graphics.colorspace.o.(java.lang.Object) failed to verify: void androidx.compose.ui.graphics.colorspace.o.(java.lang.Object): [0x0] cannot access instance field java.lang.Object androidx.compose.ui.graphics.colorspace.n.a from object of type Precise Reference: androidx.compose.ui.graphics.colorspace.o
AGP 7.4.0/7.3.1 - Attempt to enqueue an action in a non pushable enqueuer work list
AGP को 7.3.1 से 7.4.0 पर अपग्रेड करने पर, RenderScript कोड को छोटा करने की प्रोसेस की परफ़ॉर्मेंस में काफ़ी गिरावट आई

Android Gradle प्लग इन 8.0.1

ठीक की गई समस्याएं
Shrinker (R8)
गड़बड़ी: AGP 7.2.2 से 7.4.0 पर अपग्रेड करने के बाद, "टेबल में दिए गए आईडी के साथ कोई VersionRequirement नहीं है"
R8 NullPointerException at markTypeAsLive AGP 7.4.1
[R8 4.0.53] Android 11 पर क्लास की पुष्टि नहीं हो सकी

Android Gradle प्लग इन 8.0.2

ठीक की गई समस्याएं
Shrinker (R8)
ArrayIndexOutOfBoundsException की वजह से, कंपोज़ बिल्ड के दौरान R8 काम नहीं करता
VerifyError: Verifier rejected class when using R8 with Kotlin 1.8.20
AGP 8 पर R8, Google Fit की सेवा को बंद कर देता है
इनपुट नामों से मिलते-जुलते नामों वाली सोर्स फ़ाइल की जानकारी को सही तरीके से नहीं दिखाया गया है