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

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

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

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

पैच रिलीज़

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

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

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

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

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

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

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

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

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

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

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

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

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

झंडा नई डिफ़ॉल्ट वैल्यू पिछली डिफ़ॉल्ट वैल्यू नोट
android.defaults.buildfeatures.buildconfig false true एजीपी 8.0, डिफ़ॉल्ट रूप से BuildConfig जनरेट नहीं करता. आपको जिन प्रोजेक्ट में इस विकल्प की ज़रूरत है उनमें डीएसएल का इस्तेमाल करके, इसे तय करना होगा.
android.defaults.buildfeatures.aidl false true एजीपी 8.0 में, एआईडीएल की सुविधा डिफ़ॉल्ट रूप से चालू नहीं होती. आपको जिन प्रोजेक्ट में इस विकल्प की ज़रूरत है उनमें डीएसएल का इस्तेमाल करके, इस विकल्प को तय करना होगा. इस फ़्लैग को 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 नहीं बनाता. इसके बजाय, एजीपी सिर्फ़ उन वैरिएंट के लिए SoftwareComponents बनाता है जिन्हें पब्लिशिंग डीएसएल का इस्तेमाल करके पब्लिश करने के लिए कॉन्फ़िगर किया गया है.

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

एजीपी में नया फ़्लैग 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
  ...
}

टूल को इस्तेमाल करने से जुड़ी प्रोफ़ाइलें

सेटिंग प्लग इन की मदद से, कुछ टूल के लिए एक्ज़ीक्यूशन प्रोफ़ाइलें भी बनाई जा सकती हैं. एक्ज़ीक्यूशन प्रोफ़ाइल से यह तय होता है कि कोई टूल कैसे चलाया जाए. एनवायरमेंट के हिसाब से, अलग-अलग एक्ज़ीक्यूशन प्रोफ़ाइलें चुनी जा सकती हैं. एग्ज़ीक्यूशन प्रोफ़ाइल में, किसी टूल के लिए जेवीएम आर्ग्युमेंट सेट किए जा सकते हैं. साथ ही, उसे अलग प्रोसेस में चलाने के लिए कॉन्फ़िगर किया जा सकता है. सिर्फ़ 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 प्लगिन 8.0 का इस्तेमाल करते समय, Gradle को चलाने के लिए अब JDK 17 ज़रूरी है. Android Studio Flamingo में JDK 17 बंडल किया गया है. साथ ही, Gradle को डिफ़ॉल्ट रूप से इसका इस्तेमाल करने के लिए कॉन्फ़िगर किया गया है. इसका मतलब है कि Android Studio का इस्तेमाल करने वाले ज़्यादातर लोगों को अपने प्रोजेक्ट के कॉन्फ़िगरेशन में कोई बदलाव करने की ज़रूरत नहीं है.

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

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

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

Android Gradle प्लगिन 8.0.2

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

Android Gradle प्लगिन 8.0.1

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

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-Beta का इस्तेमाल करने के लिए, एजीपी टेस्ट अपडेट करना
Gradle 7.4 काम नहीं करता (AnalyticsService का इंस्टेंस नहीं बनाया जा सका)
AGP 7.4.0-alpha09 पर javac से नया "unknown enum constant"
कॉन्फ़िगरेशन कैश मेमोरी चालू होने पर भी, MergeGeneratedProguardFilesCreationAction कॉन्फ़िगरेशन धीमा है
[AGP] जनरेट की गई सोर्स डायरेक्ट्री को आईडीई मॉडल (वैरिएंट एपीआई) में जोड़ना
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 प्रॉपर्टी वर्शन जोड़ें
एएआर में पैकेज किए जा रहे पुराने प्रीफ़ैब आर्टफ़ैक्ट
बंद होने की चेतावनी को ठीक करने और Gradle 9.0 के लिए तैयारी करने के लिए, destination प्रॉपर्टी से outputLocation प्रॉपर्टी पर माइग्रेट करें
JavaCompile टास्क सेट अप करते समय, `--release` फ़्लैग को ध्यान में रखें
[AGP-7.3.0-beta03] एक्सएमएल डिक्लेरेशन के बाद खाली लाइन होने पर, ShrinkResourcesNewShrinkerTask टास्क पूरा नहीं हो पाता है
lintVital टारगेट, डिबग वैरिएंट में डिफ़ॉल्ट रूप से चलता है
ProGuard फ़ाइलें मौजूद न होने पर चेतावनी देना
टास्क के लागू होने के फ़ेज़ के दौरान, एजीपी kotlinOptions.freeCompilerArgs को जोड़ने की कोशिश करता है
Gradle सिंक नहीं हो सका: सिंक नहीं हो सका: वजह नहीं पता
DependencyReportTask, कॉन्फ़िगरेशन कैश मेमोरी के साथ काम नहीं करता
build.gradle में resValue की मदद से संसाधनों को बदलने पर, गड़बड़ी होती है: डुप्लीकेट संसाधन
'डीबग' बिल्ड टाइप में डिफ़ॉल्ट साइनिंग पासकोड होता है, जबकि अन्य में नहीं होता
डाइनैमिक सुविधाओं और इस्तेमाल नहीं किए जाने वाले रिसॉर्स को हटाने की प्रोसेस का इस्तेमाल करने से, रनटाइम क्रैश हो जाता है
'डीबग' बिल्ड टाइप में डिफ़ॉल्ट साइनिंग पासकोड होता है, जबकि अन्य में नहीं होता
जनरेट की गई सोर्स डायरेक्ट्री, लिंट मॉडल के मुख्य सोर्स प्रोवाइडर में 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 को, लिंट टास्क के अप-टू-डेट होने की जांच के लिए इस्तेमाल नहीं किया जाता
Android Gradle प्लगिन 7.0+ और Android टेस्ट से जुड़ी समस्या: संसाधन नहीं मिला: आईडी
configureCMakeDebug, 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, बेसलाइन प्रोफ़ाइलों को काम करने से रोकता है
एजीपी 8.0 में CheckAarMetadataTask मैसेज में, 'compileSdkVersion' को 'compileSdk' में बदलें
AGP 7.4.0-rc01, वैरिएंट एपीआई को काम करने से रोकता है. इसके लिए, यह गड़बड़ी का मैसेज दिखाता है: "टास्क '...' पूरा होने से पहले, map(provider(java.util.Set)) की मैप की गई वैल्यू के बारे में क्वेरी नहीं की जा सकती"
कॉन्फ़िगरेशन कैश मेमोरी से जुड़ी `com.android.build.gradle.tasks.ShaderCompile` समस्याएं
एजीपी एपीआई का इस्तेमाल करके Java रिसॉर्स जोड़ने से, कॉन्फ़िगरेशन कैश मेमोरी काम करना बंद कर देती है
लिंट प्लग इन, gradle-api का हिस्सा नहीं है
DexingFileDependenciesTask.outputKeepRules एक डायरेक्ट्री है, लेकिन इसे OutputFile के तौर पर मार्क किया गया है
एजीपी 7.4 पर अपग्रेड करने से StackOverflowError की गड़बड़ी होती है
टेस्ट वैरिएंट के लिए मेनिफ़ेस्ट प्लेसहोल्डर के साथ processDebugUnitTestManifest काम नहीं कर रहा है
Lint, डिपेंडेंसी के बिना सोर्स सेट की जानकारी ऐक्सेस करता है
बिल्ड से जुड़ी गड़बड़ी में एपीआई लेवल 34 का रेफ़रंस दिया गया है, जो मौजूद नहीं है
जब कोई नया Android Gradle प्लग इन उपलब्ध न हो, तब "हमारा सुझाव है कि आप नए Android Gradle प्लग इन का इस्तेमाल करें" मैसेज दिखना
android.injected.testOnly=false काम नहीं करता
Dexer (D8)
AS Canary 6 से 7 पर अपग्रेड करने के बाद, ग्लोबल सिंथेटिक से जुड़ी Dex मर्जिंग की गड़बड़ी
Kotlin मेटाडेटा लाइब्रेरी को 0.6.0 वर्शन पर अपडेट करें
ऐसा लगता है कि एपीआई लेवल 28 से 30 पर, JDK-8272564 के लिए वर्कअराउंड की ज़रूरत है
लिंट
Kotlin सोर्स के लिए, ResourceType लिंट चेक की सुविधा काम नहीं कर रही है
VersionChecks, Kotlin रेंज की जांच को हैंडल नहीं करता
रैप किए जाने पर, InlinedApi के लिए फ़ॉल्स पॉज़िटिव
openInputStream के बारे में Lint फ़ॉल्स पॉज़िटिव रीसाइकल
[BuildTool/Lint] ChecksSdkIntAtLeast कंस्ट्रक्टर प्रॉपर्टी
लिंट: PartialResults को मर्ज करने की सुविधा सही तरीके से काम नहीं करती
Android Studio, किसी वर्शन को गलती से पुराना बता देता है.
AndroidDeprecationInspection.DeprecationFilter EP को android-plugin.xml फ़ाइल में कभी रजिस्टर नहीं किया गया
AccessibilityDetector लिंट चेक की जानकारी पुरानी है
लिंट SDK_INT की जांच में, कुछ समय के लिए इस्तेमाल होने वाले लोकल वैरिएबल को समझना चाहिए
TestMode.TYPE_ALIAS के फ़ंक्शन टाइप को typealias से बदलने पर गड़बड़ी हुई
गड़बड़ी: जब ObjectAnimator को मौजूदा कोड ब्लॉक के बाहर बनाया जाता है, तो उसे शुरू न करने की गलत चेतावनियां मिलती हैं #38
लिंट: mergeOnly मोड में ऐप्लिकेशन इंस्टेंस के बारे में क्वेरी करने की वजह से एनपीई
NonConstantResourceId लिंट नियम, संसाधन आईडी से कॉन्स्टेंट वैल्यू असाइन करने का पता नहीं लगा सकता
व्यू आईडी पर गड़बड़ी न दिखना
लिंट रिसॉर्स कैश मेमोरी को डीसीरियलाइज़ न कर पाने की वजह से, लिंट से जुड़ी गड़बड़ी होती है. हालांकि, इसे चेतावनी के तौर पर दिखाया जाना चाहिए
AGP Flamingo Alpha 8 Lint NewApi Desugar Regression
TypedArray#close (एपीआई 31) को डिशुगर नहीं किया गया है. हालांकि, try-with-resources में इस्तेमाल किए जाने पर, AS चेतावनी नहीं दिखाता है
लिंट, कॉल रिसीवर के लिए मान्य कास्ट की जांच नहीं करता
लिंट सिर्फ़ सीधे तौर पर लागू किए गए इंटरफ़ेस के लिए सुरक्षित कास्ट की जांच करता है, इनहेरिट किए गए इंटरफ़ेस के लिए नहीं
लिंट इंटिग्रेशन
फ़िलहाल, बेसलाइन फ़ाइल, Lint टास्क का इनपुट और आउटपुट है
Shrinker (R8)
सीएफ़ फ़्रेम की पुष्टि करने वाले टूल में एनपीई / दावा करने में गड़बड़ी
फ़ील्ड लुकअप कैश मेमोरी हटाने के बाद रिग्रेशन
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
रेंडरस्क्रिप्ट कोड को छोटा करना: एजीपी को 7.3.1 से 7.4.0 पर अपग्रेड करने पर, परफ़ॉर्मेंस में भारी गिरावट