Android Gradle प्लग इन 8.2.0 (नवंबर 2023)

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

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

Android Gradle प्लगिन 8.2, ज़्यादा से ज़्यादा एपीआई लेवल 34 के साथ काम करता है. Android Gradle प्लगिन 8.6 के साथ काम करने वाले टूल वर्शन से जुड़ी अन्य ज़रूरी जानकारी यहां देखें:

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

JDK का पाथ तय करने के लिए नया मैक्रो

#GRADLE_LOCAL_JAVA_HOME एक नया मैक्रो है. इसका इस्तेमाल, JDK के पाथ की जानकारी देने के लिए किया जा सकता है. इससे, आपके प्रोजेक्ट के लिए Gradle डेमॉन (बैकग्राउंड प्रोसेस) को चलाने के लिए इस्तेमाल किए गए Java होम पाथ को तय करना ज़्यादा सुरक्षित और आसान हो जाता है. पाथ चुनने की जानकारी, .gradle/config.properties फ़ाइल के java.home फ़ील्ड में सेव की जाती है. Android Studio में Gradle JDK की सेटिंग के ज़रिए इस फ़ील्ड को सेट करें: File (या macOS पर Android Studio) > Settings > Build, Execution, Deployment > Build Tools > Gradle.

नए प्रोजेक्ट में, डिफ़ॉल्ट रूप से #GRADLE_LOCAL_JAVA_HOME का इस्तेमाल किया जाएगा. सिंक होने के बाद, मौजूदा प्रोजेक्ट अपने-आप नए मैक्रो पर माइग्रेट हो जाएंगे. हालांकि, ऐसा तब नहीं होगा, जब #JAVA_HOME जैसे मैक्रो का इस्तेमाल पहले से किया जा रहा हो.

नए मैक्रो के मुख्य फ़ायदे यहां दिए गए हैं:

  • अपने प्रोजेक्ट को खोले बिना सिंक करने की सुविधा को ट्रिगर करने के लिए, JDK पाथ में मैन्युअल तरीके से बदलाव किया जा सकता है.
  • Gradle और प्रोजेक्ट JDK के साथ काम न करने वाले वर्शन से जुड़ी कम गड़बड़ियां, क्योंकि Gradle JDK चुनने के लिए एक ही सोर्स ऑफ़ ट्रुथ होता है.

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

Android Gradle प्लगिन 8.2.2

ठीक की गई समस्याएं
Android Gradle प्लगिन
AGP 8.2.0 में JaCoCo का वर्शन सेट नहीं किया जा सका
Dexer (D8)
[desugared library] Desugared library का वर्शन 2.1, R8 के पिछले वर्शन के साथ काम नहीं करता
क्या D8 के साथ भी ऑप्टिमाइज़ेशन की सुविधा काम करती है?
Shrinker (R8)
[R8 8.3.21] R8 8.3.21, R8 8.1.56 से 1.57 एमबी बड़ा है
class.getInterfaces() से खाली वैल्यू मिलती है

Android Gradle प्लगिन 8.2.1

ठीक की गई समस्याएं
Android Gradle प्लगिन
जब सबप्रोजेक्ट की क्लास को आर्टफ़ैक्ट ट्रांसफ़ॉर्म के ज़रिए पहले ही डेक्स किया जा चुका हो, तब उन पर डेक्सिंग टास्क न चलाएं
Android Gradle प्लगिन, JavaVersion.VERSION_11 और OpenJDK 21 ea के साथ काम नहीं करता
Dexer (D8)
Android U के लिए रिकॉर्ड को डीसुगर करना
Shrinker (R8)
R8, खराब डेक्स जनरेट करता है. इससे रनटाइम के दौरान क्लास कास्ट एक्सेप्शन होता है
R8 की वजह से, इंटरफ़ेस में बदलाव होने पर ऐक्सेस नहीं किया जा सकता
AGP 8.2.0 के साथ R8 Flurry SDK क्रैश होने की समस्या
Android - R8 की वजह से LinearLayoutManager की सबक्लास क्रैश हो जाती है
R8 में ClassCastException तब होता है, जब रीपैकेजिंग चालू हो और कोड का साइज़ कम करने, उसे अस्पष्ट बनाने, और ऑप्टिमाइज़ करने की सुविधा बंद हो
R8, BridgeAnalyzer.analyzeMethod में अटक गया है
अपग्रेड करने के बाद, R8 v8.2.33 में "java.lang.VerifyError: Bad type on operand stack" रनटाइम क्रैश की समस्या

Android Gradle प्लगिन 8.2.0

ठीक की गई समस्याएं
Android Gradle प्लगिन
कस्टम सोर्स टाइप को कई फ़्लेवर वाले सोर्ससेट बनाने चाहिए
एसडीके के वर्शन की जांच करने की सुविधा, एसडीके एक्सटेंशन के उपयोगकर्ताओं के लिए काम नहीं करती
DependenciesInfoBuilder को एपीआई अपडेट और दस्तावेज़ की ज़रूरत है
नेस्ट मेंबर मौजूद न होने की वजह से, Java 11 को टारगेट करने वाला DexingNoClasspathTransform (minSdk >= 24) काम नहीं करता
Groovy में DslExtension.Builder.extendProjectWith() बताए गए तरीके से काम नहीं कर रहा है
VariantSelector.withFlavor API जोड़ें, जो kotlin.Pair का इस्तेमाल नहीं करता
AndroidLintAnalysisTask (:lintAnalyzeExternalRelease) has a cache miss because `proguard.txt` has changed
ऐप्लिकेशन के मर्ज किए गए मेनिफ़ेस्ट में, डिपेंडेंसी से extractNativeLibs और useEmbeddedDex एट्रिब्यूट शामिल हैं
build-tools 33.0.0 के साथ AIDL काम नहीं करता
AGP: AIDL टूल और फ़्रेमवर्क AIDL फ़ाइल के पाथ को सार्वजनिक एपीआई के तौर पर उपलब्ध कराएं
अनुरोध: IDE को "PermittedSubclasses requires ASM9" के लिए सुधार का सुझाव देने दें
AGP को कंपाइल करते समय टारगेट बाइटकोड 17
VariantManager.getModifiedName हटाएं
AndroidTest.packaging.jniLibs.keepDebugSymbols से, androidTest पैकेजिंग पर कोई असर नहीं पड़ता
GMD इंस्ट्रुमेंटेशन टेस्ट टास्क रुक जाते हैं और फिर से कोशिश करने पर फ़ेल होने लगते हैं
agp 8.1.0 में generateLocaleConfig, नॉन-डिटरमिनिस्टिक ऑर्डरिंग का इस्तेमाल करता है. इससे, दोबारा बनाए जा सकने वाले बिल्ड काम नहीं करते
ProcessApplicationManifest.navigationJsons में ऐसी फ़ाइलें हैं जिनके पूरे पाथ मौजूद हैं
AnalyticsService के बन जाने के बाद, AnalyticsConfiguratorService के ज़रिए GradleBuildProject.Builder को ऐक्सेस करने की अनुमति नहीं है
AndroidTest.packaging.jniLibs.keepDebugSymbols से, androidTest पैकेजिंग पर कोई असर नहीं पड़ता
रंग की गैर-कानूनी वैल्यू के लिए कंपाइल करने की अनुमति है
VariantBuilder के लिए "ReplaceWith" गलत है
.gradle/.android/analytics.settings की वजह से, Gradle 8.1 में कॉन्फ़िगरेशन कैश मेमोरी काम नहीं करती
Deprecation messages doesn't use `ReplaceWith`
डिफ़ॉल्ट NDK वर्शन पाने का तरीका उपलब्ध कराएं
Android Gradle प्लगिन को चलाने के लिए, Java 17 की ज़रूरत होती है.
ASM ट्रांसफ़ॉर्म और toAppend() के साथ काम न करने की समस्या
KMP प्रोजेक्ट पर Gradle के ज़रिए K2 UAST के साथ Lint चलाने पर, LintErrors ठीक करें
Variant लेवल पर missingDimensionStrategy के लिए सहायता और शायद बिल्ड के तरीके/फ़्लेवर matchingFallback के लिए सहायता
Android Studio Giraffe में `android.injected.studio.version` को हटा दिया गया था
AndroidXDependencyCheck को बंद करने की सुविधा जोड़ी गई
agp 8.1.0 में generateLocaleConfig, नॉन-डिटरमिनिस्टिक ऑर्डरिंग का इस्तेमाल करता है. इससे, दोबारा बनाए जा सकने वाले बिल्ड काम नहीं करते
AAR मेटाडेटा में R8 / D8 वर्शन की ज़रूरी शर्तों का विज्ञापन दिखाएं. उदाहरण के लिए, coreLibraryDesugaring और नए एपीआई आउट-ऑफ़-लाइनिंग के लिए
सिंक करने से जुड़ी चेतावनी: "AnalyticsService बनने के बाद, AnalyticsConfiguratorService के ज़रिए GradleBuildProject.Builder को ऐक्सेस नहीं किया जाना चाहिए"
Gradle 8.2 के माइलस्टोन या आरसी वर्शन पर अपडेट करें
'java.lang.Comparable' को ऐक्सेस नहीं किया जा सकता
androidResources, Android लाइब्रेरी मॉड्यूल में उपलब्ध नहीं है
AGP को 8.0.2 से 8.1.0 पर अपडेट करने के बाद, ':app:mergeReleaseClasses' टास्क पूरा नहीं हो सका
.gradle/.android/analytics.settings की वजह से, Gradle 8.1 में कॉन्फ़िगरेशन कैश मेमोरी काम नहीं करती
[AGP 8.1.0] अगर splits.abi.isEnable और testOptions.unitTests.isIncludeAndroidResources, दोनों की वैल्यू सही है, तो ./gradlew test में "Unable to find manifest output" गड़बड़ी होती है
Android Studio Giraffe, AGP 8.1 के साथ versionCodeOverride का इस्तेमाल नहीं करता
AGP 8.1.0, इंस्ट्रुमेंटेड टेस्ट चलाने के बाद ऐप्लिकेशन को अनइंस्टॉल कर देता है. हालांकि, 7.4.2 ऐसा नहीं करता
किसी APK को बदलने पर, ListingFileRedirectTask में गड़बड़ी होती है
HEDGEHOG REGRESSION: Run बटन कुछ सेकंड की देरी से काम कर रहा है (Creating spec)
Dexer (D8)
min-api 34 और इससे ऊपर के वर्शन के लिए dexing करते समय, नेटिव रिकॉर्ड और सील की गई क्लास चालू करें
लिंट
Instantiated lint check does not handle AppComponentFactory well
Lint 8.2.0 के ऐल्फ़ा वर्शन में, अब भी Kotlin में टॉप-लेवल फ़ंक्शन इंपोर्ट करने की सुविधा काम नहीं करती
लिंट बेसलाइन में लाइन और कॉलम नंबर शामिल न करने का विकल्प जोड़ें
लिंट बेसलाइन में लाइन और कॉलम नंबर शामिल न करने का विकल्प जोड़ें
Lint टेस्ट, Java 17 की भाषा से जुड़ी सुविधाओं के साथ काम नहीं करते
Bumblebee 2021.1.1 Patch 1 में, commons-io के पुराने वर्शन (20030203.000550) को 2.11.0 से नया बताया जा रहा है.
Lint 8.2.0 के ऐल्फ़ा वर्शन में, अब भी Kotlin में टॉप-लेवल फ़ंक्शन इंपोर्ट करने की सुविधा काम नहीं करती
Bumblebee 2021.1.1 Patch 1 में, commons-io के पुराने वर्शन (20030203.000550) को 2.11.0 से नया बताया जा रहा है.
Android Studio, तय किए गए वर्शन को गलत तरीके से पुराना बताता है.
K2 UAST का इस्तेमाल करते समय, Lint, UseValueOf समस्या को अनदेखा करता है
Android Lint ने किसी दूसरे प्रोजेक्ट में अनचाही समस्याओं के बारे में सूचना दी है
Android Lint, KMP लाइब्रेरी पर काम नहीं करता है. इसमें `property 'variantInputs.name' doesn't have a configured value.` मैसेज दिखता है.
लिंट इंटिग्रेशन
testImplementation डिपेंडेंसी से DuplicatePlatformClasses लिंट की गड़बड़ी
Shrinker (R8)
java.lang.VerifyError: Verifier rejected class
Apache POI लाइब्रेरी का इस्तेमाल करते समय, बिल्ड :minifyReleaseWithR8 पर अटक जाता है
Kotlin 1.9 में, अगर nullcheck हटा दिए जाते हैं, तो R8 की वजह से Kotlin लैम्डा डिस्ट्रॉय हो जाते हैं