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

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

7.2.2 (अगस्त 2022)

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

  • समस्या #232438924: AndroidGradlePlugin 7.2 वर्शन, ASM API के साथ इस्तेमाल किए जाने पर ट्रांसफ़ॉर्म एपीआई को काम नहीं करने देता
  • समस्या #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 के रिलीज़ नोट देखें.

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

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

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 प्रोजेक्ट में इसका इस्तेमाल करने के तरीके के बारे में ज़्यादा जानने के लिए, टेस्ट फ़िक्चर इस्तेमाल करने{:.external} के बारे में Gradle की गाइड देखें.

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

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

डिफ़ॉल्ट रूप से, लाइब्रेरी पब्लिश करने पर टेस्ट फ़िक्चर AAR भी मुख्य लाइब्रेरी के साथ पब्लिश हो जाता है. Gradle Module Metadata फ़ाइल में, Gradle के लिए जानकारी शामिल होगी. इससे 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')
}

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

android {
  lint {
    ignoreTestFixturesSources true
  }
}

कॉन्टेंट रूट को डुप्लीकेट नहीं किया जा सकता

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