Android Gradle प्लगिन 7.2.0 (मई 2022)

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

7.2.2 (अगस्त 2022)

यह छोटा अपडेट, Android Studio Chipmunk Patch 2 की रिलीज़ से जुड़ा है. इसमें ये गड़बड़ियां ठीक की गई हैं:

  • समस्या #232438924: AndroidGradlePlugin का वर्शन 7.2, ASM एपीआई के साथ इस्तेमाल करने पर, ट्रांसफ़ॉर्म एपीआई को तोड़ देता है
  • समस्या #231037948: AGP 7.2.0-rc01 :buildSrc:generatePrecompiledScriptPluginAccessors - shadow/bundletool/com/android/prefs/AndroidLocation$AndroidLocationException
7.2.1 (मई 2022)

यह छोटा अपडेट, Android Studio Chipmunk Patch 1 की रिलीज़ से जुड़ा है. इसमें ये गड़बड़ियां ठीक की गई हैं:

  • समस्या #230361284: bundletool, बेसलाइन प्रोफ़ाइल को सही तरीके से पैकेज नहीं करता

इस रिलीज़ में ठीक की गई अन्य गड़बड़ियों के बारे में जानने के लिए, Android Studio Chipmunk Patch 1 के रिलीज़ नोट देखें.

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

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

Jetifier की चेतावनी और Build Analyzer में जांच की सुविधा

अगर आपके प्रोजेक्ट की gradle.properties फ़ाइल में android.enableJetifier=true शामिल है, तो Build Analyzer अब एक चेतावनी दिखाता है. इस फ़्लैग को Android Studio के पिछले वर्शन में, उन लाइब्रेरी के लिए AndroidX चालू करने के लिए जोड़ा गया था जो AndroidX के साथ काम नहीं करती हैं. हालांकि, लाइब्रेरी इकोसिस्टम अब ज़्यादातर AndroidX के साथ काम करता है. इसलिए, शायद आपके प्रोजेक्ट के लिए Jetifier फ़्लैग की ज़रूरत नहीं है. इसके अलावा, इस फ़्लैग की वजह से बिल्ड की परफ़ॉर्मेंस धीमी हो सकती है. अगर आपको यह चेतावनी दिखती है, तो Build Analyzer में एक जांच की जा सकती है. इससे यह पुष्टि की जा सकती है कि फ़्लैग को हटाया जा सकता है या नहीं.

टेस्ट फ़िक्चर के लिए सहायता

Android Studio Chipmunk Beta 1 से, Android Studio, Android और Java, दोनों के टेस्ट फ़िक्चर के साथ काम करता है. टेस्ट फ़िक्चर की सुविधा और Java प्रोजेक्ट में इसका इस्तेमाल करने के तरीके के बारे में ज़्यादा जानने के लिए, टेस्ट फ़िक्चर का इस्तेमाल करने के बारे में Gradle की गाइड{:.external} देखें.

अपने Android लाइब्रेरी मॉड्यूल में टेस्ट फ़िक्चर चालू करने के लिए, लाइब्रेरी-लेवल की फ़ाइल में यह कोड जोड़ें:build.gradle

android {
  testFixtures {
    enable true
    // enable testFixtures's android resources (disabled by default)
    // androidResources true
  }
}

डिफ़ॉल्ट रूप से, अपनी लाइब्रेरी पब्लिश करने पर, मुख्य लाइब्रेरी के साथ-साथ टेस्ट फ़िक्चर AAR भी पब्लिश हो जाता है. Gradle Module Metadata फ़ाइल में, Gradle के लिए जानकारी शामिल होगी, ताकि testFixtures कॉम्पोनेंट का अनुरोध करने पर, सही आर्टफ़ैक्ट का इस्तेमाल किया जा सके.

रिलीज़ वैरिएंट में, किसी लाइब्रेरी के टेस्ट फ़िक्चर AAR को पब्लिश करने की सुविधा बंद करने के लिए, लाइब्रेरी-लेवल की build.gradle फ़ाइल में यह कोड जोड़ें:

afterEvaluate {
  components.release.withVariantsFromConfiguration(
    configurations.releaseTestFixturesVariantReleaseApiPublication) { skip() }
  components.release.withVariantsFromConfiguration(
    configurations.releaseTestFixturesVariantReleaseRuntimePublication) { skip() }
}

पब्लिश की गई Android लाइब्रेरी के टेस्ट फ़िक्चर AAR का इस्तेमाल करने के लिए, आप Gradle के हेल्पर तरीके का इस्तेमाल कर सकते हैं testFixtures().

dependencies {
  testImplementation testFixtures('com.example.company:publishedLib:1.0')
}

डिफ़ॉल्ट रूप से, lint, टेस्ट फ़िक्चर के सोर्स का विश्लेषण करेगा. टेस्ट फ़िक्चर के सोर्स को अनदेखा करने के लिए, lint को इस तरह कॉन्फ़िगर किया जा सकता है:

android {
  lint {
    ignoreTestFixturesSources true
  }
}

डुप्लीकेट कॉन्टेंट रूट की सुविधा उपलब्ध नहीं है

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