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

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

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

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

पैच रिलीज़

यहां 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 नहीं है"
markTypeAsLive AGP 7.4.1 में R8 NullPointerException
[R8 4.0.53] Android 11 पर, हार्ड क्लास की पुष्टि नहीं हो सकी

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

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

नेमस्पेस डीएसएल पर माइग्रेट करते समय, इन समस्याओं का ध्यान रखें:

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

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

अहम बदलाव: बिल्ड के विकल्प की डिफ़ॉल्ट वैल्यू

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

चिह्नित करें नई डिफ़ॉल्ट वैल्यू पिछली डिफ़ॉल्ट वैल्यू नोट
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 फ़ाइल में डाला है, तो वैल्यू को अनदेखा कर दिया जाता है और AGP चेतावनियां दिखाता है.

चिह्नित करें लागू की गई वैल्यू नोट
android.dependencyResolutionAtConfigurationTime.warn true अगर AGP 8.0 को कॉन्फ़िगरेशन के दौरान रिज़ॉल्यूशन का पता चलता है, तो वह एक चेतावनी देता है. ऐसा इसलिए होता है, क्योंकि इससे Gradle कॉन्फ़िगरेशन के समय पर बुरा असर पड़ता है.
android.r8.failOnMissingClasses true अगर बेहतर डीईएक्स ऑप्टिमाइज़ेशन पक्का करने के लिए क्लास मौजूद नहीं हैं, तो 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 में SDK टूल डिपेंडेंसी की जानकारी जोड़ने की सुविधा चालू होने पर, 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 बनाता है जिन्हें पब्लिश करने के लिए कॉन्फ़िगर किया गया है. इसके लिए, पब्लिश करने के लिए DSL का इस्तेमाल किया जाता है.

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

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

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

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

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

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

Android Studio Flamingo में, बिल्ड ऐनालाइज़र में उन टास्क के लिए एक नया डिफ़ॉल्ट व्यू है जिनसे बिल्ड में लगने वाले समय पर असर पड़ता है. अगर आपका प्रोजेक्ट AGP 8.0 या इसके बाद के वर्शन का इस्तेमाल करता है, तो टास्क को अलग-अलग दिखाने के बजाय, बिल्ड विश्लेषक उन्हें कैटगरी के हिसाब से ग्रुप करता है. उदाहरण के लिए, 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 वर्शन को अपग्रेड करें. इसके लिए, JDK 17 की इंस्टॉलेशन डायरेक्ट्री में JAVA_HOME एनवायरमेंट वैरिएबल या -Dorg.gradle.java.home कमांड-लाइन विकल्प सेट करें.

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

Android Gradle प्लग इन 8.0.0

ठीक की गई समस्याएं
Android Gradle प्लग इन
MergeResources टास्क में, बिल्ड करने में बार-बार होने वाली गड़बड़ी
JavaPluginConvention और HasConvention अब काम नहीं करते
नए ट्रांसफ़ॉर्म एपीआई के लिए, फ़ाइल की गलत और अलग-अलग जगह
Android Gradle प्लग इन को GUtil.toWords(string) फ़ंक्शन का इस्तेमाल नहीं करना चाहिए, क्योंकि यह अब काम नहीं करता
Android Gradle प्लग इन को, ConfigureUtil.configure(closure, target) फ़ंक्शन का इस्तेमाल नहीं करना चाहिए. इस फ़ंक्शन का इस्तेमाल बंद कर दिया गया है
KGP 1.7.20-बीटा का इस्तेमाल करने के लिए, AGP टेस्ट अपडेट करना
Gradle 7.4 काम नहीं करता (AnalyticsService का इंस्टेंस नहीं बनाया जा सका)
AGP 7.4.0-alpha09 पर javac से मिला नया "अनजान एनम कॉन्स्टेंट"
कॉन्फ़िगरेशन कैश मेमोरी चालू होने पर भी, MergeGeneratedProguardFilesCreationAction कॉन्फ़िगरेशन धीमा है
[AGP] जनरेट की गई सोर्स डायरेक्ट्री को IDE मॉडल (वैरिएंट एपीआई) में जोड़ना
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 की मदद से रिसॉर्स को बदलने पर, गड़बड़ी का मैसेज मिलता है: डुप्लीकेट रिसॉर्स
'डीबग' बिल्ड टाइप में डिफ़ॉल्ट साइनिंग पासकोड होता है, जबकि अन्य में नहीं
डाइनैमिक सुविधाओं और रिसॉर्स को छोटा करने की प्रोसेस का इस्तेमाल करने पर, ऐप्लिकेशन के रनटाइम में क्रैश होने की समस्या आ सकती है
'डीबग' बिल्ड टाइप में डिफ़ॉल्ट साइनिंग पासकोड होता है, जबकि अन्य में नहीं
जनरेट की गई सोर्स डायरेक्ट्री, जो लिंट मॉडल के मुख्य सोर्स प्रोवाइडर में Java डायरेक्ट्री के तौर पर दी गई है
Gradle 8.0-milestone-2 की वजह से, AGP में अपवाद दिखता है
ऐप्लिकेशन और लाइब्रेरी के लिए मेनिफ़ेस्ट मर्ज करने की सुविधा को ऑप्टिमाइज़ करना
Javadoc जनरेशन में gradle-settings-api जोड़ना
AGP 7.4.0-alpha09 पर javac से मिला नया "अनजान एनम कॉन्स्टेंट"
AGP 7.4.0-alpha09 ऐसे बिल्ड जनरेट करता है जो Firebase App Distribution में अपलोड नहीं होंगे
मॉड्यूल में मौजूद lint.xml को, lint टास्क के अप-टू-डेट होने की जांच के लिए नहीं माना जाता
Android Gradle प्लग इन 7.0 और इसके बाद के वर्शन और Android टेस्ट से जुड़ी समस्या: रिसॉर्स नहीं मिला: आईडी
configureCMakeDebug flakily crashing with null pointer exception
प्रोजेक्ट को AS2022.2.1.5, FireBasePerfPlugin पर अपग्रेड करते समय IllegalAccessError
गड़बड़ी का यह मैसेज मिलने पर सिंक नहीं हो पाता: "कलेक्शन में प्रेडिकेट से मैच करने वाला कोई एलिमेंट नहीं है."
इंस्ट्रूमेंटेशन एपीआई, लोकल फ़ाइल डिपेंडेंसी में बदलाव नहीं करता
7.4 बीटा 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, "टास्क '...' पूरा होने से पहले, map(provider(java.util.Set)) की मैप की गई वैल्यू के बारे में क्वेरी करना काम नहीं करता" वाली गड़बड़ी के साथ वैरिएंट एपीआई को बंद कर देता है
कॉन्फ़िगरेशन कैश मेमोरी से जुड़ी, `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 पर अपग्रेड करने के बाद, ग्लोबल सिंथेटिक्स से जुड़ी डेक्स मर्ज करने से जुड़ी गड़बड़ी
Kotlin मेटाडेटा लाइब्रेरी को 0.6.0 वर्शन पर अपडेट करना
ऐसा लगता है कि एपीआई लेवल 28 से 30 पर, JDK-8272564 से जुड़ी समस्या को हल करना ज़रूरी है
Lint
ResourceType lint check is not working for kotlin sources
VersionChecks, Kotlin की रेंज की जांच नहीं करता
रैप किए जाने पर, InlinedApi के लिए फ़ॉल्स पॉज़िटिव
openInputStream के बारे में Lint का गलत फ़ॉल्स पॉज़िटिव रिसाइकल
[BuildTool/Lint] ChecksSdkIntAtLeast कंस्ट्रक्टर प्रॉपर्टी
Lint: PartialResults को मर्ज करने की सुविधा ठीक से काम नहीं कर रही
Android Studio, किसी वर्शन को गलत तरीके से 'पुराना' के तौर पर मार्क करता है.
AndroidDeprecationInspection.DeprecationFilter EP को कभी भी android-plugin.xml फ़ाइल में रजिस्टर नहीं किया जाता
AccessibilityDetector की लिंट जांच की जानकारी पुरानी है
Lint SDK_INT की जांच में, कुछ समय के लिए इस्तेमाल होने वाले लोकल वैरिएबल को समझा जाना चाहिए
TestMode.TYPE_ALIAS फ़ंक्शन टाइप को typealias से बदलने पर गड़बड़ी
गड़बड़ी: जब ObjectAnimator को मौजूदा कोड ब्लॉक के बाहर बनाया जाता है, तो उसे शुरू न करने के बारे में गलत चेतावनियां मिलती हैं #38
Lint: mergeOnly मोड में ऐप्लिकेशन इंस्टेंस को क्वेरी करने की वजह से एनपीई
NonConstantResourceId lint rule cannot detect to assign constant values from resource id
व्यू आईडी पर गड़बड़ी नहीं दिख रही है
लिंट संसाधनों के कैश को डिसीरियलाइज़ न कर पाने पर, लिंट गड़बड़ी दिखती है. हालांकि, यह चेतावनी होनी चाहिए
AGP Flamingo Alpha 8 Lint NewApi Desugar Regression
TypedArray#close (एपीआई 31) को डी-सुगर नहीं किया गया है, लेकिन try-with-resources में इस्तेमाल करने पर, AS चेतावनी नहीं दिखाता
Lint, कॉल पाने वालों के लिए मान्य कास्ट की जांच नहीं करता
Lint, सीधे लागू किए गए इंटरफ़ेस के लिए ही सुरक्षित कास्ट की जांच करता है, न कि इनहेरिट किए गए इंटरफ़ेस के लिए
Lint इंटिग्रेशन
फ़िलहाल, बेसलाइन फ़ाइल, Lint टास्क का इनपुट और आउटपुट है
Shrinker (R8)
CF फ़्रेम की पुष्टि करने वाले टूल में एनपीई / एश्योरेशन गड़बड़ी
फ़ील्ड लुकअप कैश मेमोरी हटाने के बाद, परफ़ॉर्मेंस में गिरावट
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 - किसी ऐसी टास्क सूची में किसी कार्रवाई को लाइन में लगाने की कोशिश करना जिसे पुश नहीं किया जा सकता
Renderscript कोड को छोटा करना: AGP को 7.3.1 से 7.4.0 पर अपग्रेड करने पर, परफ़ॉर्मेंस में काफ़ी गिरावट आई

Android Gradle प्लग इन 8.0.1

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

Android Gradle प्लग इन 8.0.2

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