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

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

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

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

पैच रिलीज़

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

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

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

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

नुकसान पहुंचा सकने वाले बदलाव: विकल्प के लिए डिफ़ॉल्ट वैल्यू बनाएं

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

चिह्नित करें नई डिफ़ॉल्ट वैल्यू पिछली डिफ़ॉल्ट वैल्यू नोट
android.defaults.buildfeatures.buildconfig false true AGP 8.0, डिफ़ॉल्ट रूप से BuildConfig जनरेट नहीं करता. आपको जिन प्रोजेक्ट में इस विकल्प की ज़रूरत है वहां डीएसएल का इस्तेमाल करके, इस विकल्प के बारे में बताना होगा.
android.defaults.buildfeatures.aidl false true AGP 8.0, डिफ़ॉल्ट रूप से AIDL की सुविधा चालू नहीं करता. आपको यह बताना होगा इस विकल्प का इस्तेमाल करके उन प्रोजेक्ट में DSL का इस्तेमाल किया जा सकता है जहां आपको इसकी ज़रूरत है. इस फ़्लैग को 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 अगर एजीपी 8.0 को इस दौरान कॉन्फ़िगरेशन रिज़ॉल्यूशन का पता चलता है, तो इसके बारे में चेतावनी दिखती है कॉन्फ़िगरेशन का चरण पूरा कर सकता है, क्योंकि यह Gradle कॉन्फ़िगरेशन पर बुरा असर डालता है बार.
android.r8.failOnMissingClasses true AGP 8.0 उस बिल्ड के लिए फ़ेल हो जाता है जो R8 का इस्तेमाल करता है. ऐसा तब होता है, जब कोई क्लास मौजूद नहीं होती है पक्का करें कि DEX ऑप्टिमाइज़ेशन बेहतर हो. इसे ठीक करने के लिए, आपको लाइब्रेरी मौजूद न हों या -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 बनाता है जिन्हें पब्लिश करने के लिए कॉन्फ़िगर किया गया है.

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

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

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

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

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

बिल्ड ऐनालाइज़र टास्क की कैटगरी

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

ऐनालाइज़र टास्क की कैटगरी बनाएं.

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

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"
  }
}

डिफ़ॉल्ट प्रोफ़ाइल को ओवरराइड करने के लिए, android.experimental.settings.executionProfile प्रॉपर्टी gradle.properties फ़ाइल:

android.experimental.settings.executionProfile=high

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

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

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

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

अगर आपको मैन्युअल तरीके से 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 का इंस्टेंस नहीं बनाया जा सका)
नया "अज्ञात enum स्थिरांक" AGP 7.4.0-alpha09 पर javac से
कॉन्फ़िगरेशन कैश मेमोरी चालू होने के बावजूद, MergeGeneratedProguardFilesCreationAction कॉन्फ़िगरेशन धीमा है
[AGP] IDE मॉडल (वैरिएंट एपीआई) में जनरेट की गई सोर्स डायरेक्ट्री जोड़ना
Javaप्लगिन कॉन्वेंशन और हैसकॉन्वेंशन अब काम नहीं करता है
R8 में, अनदेखा करने की चेतावनियां डिफ़ॉल्ट रूप से न जोड़ें
ProGuard फ़ाइलें मौजूद न होने पर चेतावनी दें
एजीपी 7.3.0 के तहत, ग्रेडल प्लैटफ़ॉर्म प्रोजेक्ट के लिए ग्रेडल सिंक की प्रोसेस को अलग किया जा रहा है
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] XML की जानकारी के एलान के बाद खाली लाइन होने पर, ShinnkResourcesNewShinskerTask काम नहीं कर पाता है
डिबग वैरिएंट में, lintVital टारगेट डिफ़ॉल्ट रूप से चलता है
ProGuard फ़ाइलें मौजूद न होने पर चेतावनी दें
एजीपी, टास्क एक्ज़िक्यूशन चरण में kotlinOptions.freeCompilerArgs जोड़ने की कोशिश करता है
Gradle सिंक नहीं हो सका: सिंक नहीं हो सका: वजह पता नहीं है
DependencyReportTask, कॉन्फ़िगरेशन कैश मेमोरी के साथ काम नहीं करता
build.gradle में resValue की मदद से रिसॉर्स को बदलने पर, गड़बड़ी का मैसेज मिलता है: डुप्लीकेट रिसॉर्स
'डीबग' बिल्ड टाइप में डिफ़ॉल्ट साइनिंग पासकोड मौजूद होता है, जबकि अन्य में नहीं
डाइनैमिक सुविधाओं और रिसॉर्स को छोटा करने की प्रोसेस का इस्तेमाल करने पर, ऐप्लिकेशन रनटाइम के दौरान क्रैश हो सकता है
'डीबग' बिल्ड टाइप में डिफ़ॉल्ट साइनिंग पासकोड होता है, जबकि अन्य में नहीं
जनरेट की गई सोर्स डायरेक्ट्री, लिंट मॉडल के मुख्य सोर्स प्रोवाइडर में Java डायरेक्ट्री के तौर पर लिस्ट की गई है
Gradle 8.0-milestone-2, एजीपी में अपवाद है
ऐप्लिकेशन और लाइब्रेरी के लिए मेनिफ़ेस्ट मर्ज करने की सुविधा को ऑप्टिमाइज़ करना
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 टेस्ट से जुड़ी समस्या: रिसॉर्स नहीं मिला: आईडी
configCMakeDebug की गड़बड़ी, शून्य पॉइंटर वाले अपवाद के साथ क्रैश हो रही है
प्रोजेक्ट को AS2022.2.1.5, FireBasePerfPlugin में अपग्रेड करने के लिए गैर-कानूनी ऐक्सेस गड़बड़ी
"कलेक्शन में प्रीडिकेट से मैच करने वाला कोई एलिमेंट नहीं है" गड़बड़ी की वजह से सिंक नहीं हो पा रहा है.
इंस्ट्रूमेंटेशन एपीआई, लोकल फ़ाइल डिपेंडेंसी में बदलाव नहीं करता
7.4 बीटा 1 में अपडेट करते समय, `AnnotationProcessorOptions.orguments पर क्वेरी की जाती है` गड़बड़ी
Gradle सार्वजनिक प्लग इन को gradle-api में ले जाएं और Baseप्लगin.getExtension को हटाएं
r8.jvmArgs का इस्तेमाल नहीं किया जाता
AGP के लिए, JDK17 का कम से कम वर्शन होना ज़रूरी है
AGP 8.0.0 A8, बेसलाइन प्रोफ़ाइलों को तोड़ता है
'compileSdkVersion' को बदलें 'compileSdk' में AGP 8.0 के CheckAarMetadataTask मैसेज में
AGP 7.4.0-rc01, "टास्क '...' पूरा होने से पहले, map(provider(java.util.Set)) की मैप की गई वैल्यू के बारे में क्वेरी करने की सुविधा काम नहीं करती" वाली गड़बड़ी के साथ वैरिएंट एपीआई को बंद कर देता है
कॉन्फ़िगरेशन कैश के साथ `com.android.build.gradle.tasks.ShaderCompile` से जुड़ी समस्याएं
AGP API का इस्तेमाल करके Java के संसाधनों को जोड़ने से, कॉन्फ़िगरेशन की कैश मेमोरी टूट जाती है
लिंट प्लगिन, gradle-api का हिस्सा नहीं है
DexingFileDependenciesTask.outputKeepRules एक डायरेक्ट्री है, लेकिन इसे OutputFile के तौर पर मार्क किया गया है
AGP 7.4 पर अपग्रेड करने पर, StackOverflowError मिलना
processDebugUnitTestManifest, टेस्ट वैरिएंट के लिए मेनिफ़ेस्ट प्लेसहोल्डर के साथ काम नहीं कर रहा है
लिंट, डिपेंडेंसी के बिना सोर्स सेट की जानकारी को ऐक्सेस करता है
बिल्ड से जुड़ी गड़बड़ी, एपीआई लेवल 34 से जुड़ी है, जो मौजूद नहीं है
"हमारा सुझाव है कि आप नए Android Gradle प्लग इन का इस्तेमाल करें", जब कोई नया प्लग इन उपलब्ध न हो
android.injected.testOnly=false काम नहीं करता
डेक्सर (D8)
AS Canary 6 से 7 पर अपग्रेड करने के बाद, ग्लोबल सिंथेटिक्स से जुड़ी डेक्स मर्ज करने से जुड़ी गड़बड़ी
Kotlin मेटाडेटा लाइब्रेरी को वर्शन 0.6.0 पर अपडेट करें
ऐसा लगता है कि एपीआई लेवल 28 से 30 पर, JDK-8272564 से जुड़ी समस्या को हल करना ज़रूरी है
लिंट
ResourceType lint check is not working for kotlin sources
VersionChecks में Kotlin रेंज की जांच नहीं की जा सकती है
रैप किए जाने पर, InlinedApi के लिए गलत पॉज़िटिव
openInputStream के बारे में Lint का गलत फ़ॉल्स पॉज़िटिव रिसाइकल
[BuildTool/Lint] ChecksSdkIntAtLeast कंस्ट्रक्टर प्रॉपर्टी
लिंट: Partialनतीजों को मर्ज करने की प्रक्रिया गलत तरीके से काम करती है
Android Studio बताए गए वर्शन को गलत तरीके से, 'पुराना' के तौर पर मार्क करता है.
AndroidDeprecationInspection.DeprecationFilter EP को कभी भी android-plugin.xml फ़ाइल में रजिस्टर नहीं किया जाता है
AccessibilityDetector की लिंट जांच की जानकारी पुरानी है
लिंट SDK_INT की जांच में अस्थायी लोकल वैरिएबल के बारे में भी जानकारी होनी चाहिए
TestMode.TYPE_ALIAS फ़ंक्शन को टाइपालिया से बदलते समय गड़बड़ी हुई
गड़बड़ी: जब मौजूदा कोड ब्लॉक के बाहर ObjectAnimator बनाया जाता है, तो इसके शुरू न होने की गलत-सकारात्मक चेतावनियां मिलती हैं #38
लिंट: मर्ज ओनली मोड में ऐप्लिकेशन इंस्टेंस की क्वेरी करने की वजह से एनपीई
NonConstantResourceId lint rule cannot detect to assign constant values from resource id
व्यू आईडी पर गड़बड़ी नहीं दिख रही है
लिंट संसाधनों के कैश को डिसीरियलाइज़ न कर पाने पर, लिंट गड़बड़ी दिखती है. हालांकि, यह चेतावनी होनी चाहिए
एजीपी फ़्लेमिंगो ऐल्फ़ा 8 लिंट न्यूएपीआई डीसुगर रिग्रेशन
TypedArray#close (एपीआई 31) को डी-सुगर नहीं किया गया है, लेकिन try-with-resources में इस्तेमाल करने पर, AS चेतावनी नहीं दिखाता
Lint, कॉल पाने वालों के लिए मान्य कास्ट की जांच नहीं करता
लिंट सिर्फ़ सीधे तौर पर लागू किए गए इंटरफ़ेस के लिए सुरक्षित कास्ट की जांच करता है, इनहेरिट किए गए इंटरफ़ेस की नहीं
Lint इंटिग्रेशन
फ़िलहाल, बेसलाइन फ़ाइल, लिंट टास्क का इनपुट और आउटपुट है
Shrinker (R8)
सीएफ़ फ़्रेम की पुष्टि करने वाली सुविधा में एनपीई / दावे से जुड़ी गड़बड़ी
फ़ील्ड लुकअप कैश मेमोरी हटाने के बाद, परफ़ॉर्मेंस में गिरावट
`:app:minifyVariantWithR8` का इस्तेमाल करके, AGP 7.4.0-beta02 में NullPointerअपवाद का पता चलता है
R8: -allowaccessmodification के दौरान, ClassNotFound अपवाद
मेटाडेटा में कॉन्टेक्स्ट रिसीवर के लिए सहायता जोड़ना
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 - पुश न किए जा सकने वाले क्रम की वर्क सूची में किसी कार्रवाई को शामिल करने की कोशिश
रेंडरस्क्रिप्ट कोड को कम करना: एजीपी को 7.3.1 से 7.4.0 में अपग्रेड करने पर परफ़ॉर्मेंस में भारी गिरावट आई है

Android Gradle प्लग इन 8.0.1

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

'Android Gradle प्लग इन 8.0.2'

ठीक की गई समस्याएं
Shrinker (R8)
ArrayIndexOutOfBoundsअपवाद के साथ कंपोज़ बिल्ड के दौरान R8 काम नहीं करता
पुष्टि करने में गड़बड़ी हुई: Kotlin 1.8.20 के साथ R8 का इस्तेमाल करते समय, पुष्टि करने वाले ने क्लास को अस्वीकार कर दिया
AGP 8 पर R8 की वजह से, Google Fit की सेवा काम नहीं करती
सोर्स फ़ाइल की जानकारी में, इनपुट के नामों से ओवरलैप होने वाले बाकी नामों को शामिल करने पर, जानकारी सही तरीके से नहीं दिखती