Gradle और Android Gradle प्लगिन के अपडेट
Gradle और Android Gradle प्लग इन के वर्शन अपग्रेड करना
सबसे पहले, Gradle और Android Gradle प्लगिन के वर्शन अपग्रेड करें. इस अपग्रेड में, कुछ एसडीके डिपेंडेंसी (जैसे, Kotlin 1.9) के साथ बेहतर तरीके से काम करने की सुविधा शामिल है. साथ ही, कुछ गंभीर गड़बड़ियां ठीक की गई हैं.
इस एसडीके की मेजर रिलीज़ के लिए, आपके Android ऐप्लिकेशन प्रोजेक्ट में इन वर्शन की डिपेंडेंसी होनी चाहिए:
- Gradle का वर्शन कम से कम v7.5.0 होना चाहिए, लेकिन v7.6.0 से ज़्यादा नहीं होना चाहिए.
- Android Gradle प्लग इन (AGP) का वर्शन v7.4.x होना चाहिए.
प्लगिन के नए वर्शन को टारगेट किया जा सकता है. हालांकि, आपको बंद की जा रही सुविधाओं के बारे में चेतावनियां मिल सकती हैं या हो सकता है कि कुछ नई सुविधाएं काम न करें.
Gradle के वर्शन में बदलाव करने के लिए, अपने प्रोजेक्ट की
/gradle/wrapper/gradle-wrapper.properties
फ़ाइल में मौजूद लाइन में बदलाव करें
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
Android Gradle प्लग इन के वर्शन में बदलाव करने के लिए, उस build.gradle
फ़ाइल में बदलाव करें जिसमें buildscript
ब्लॉक मौजूद है. उदाहरण के लिए:
buildscript {
repositories {
google()
mavenCentral()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.4.1'
}
}
Java 7 से Java 8 लाइब्रेरी के साथ काम करने की सुविधा पर माइग्रेट करना
पहला चरण - Java 8 लाइब्रेरी इस्तेमाल करने की सुविधा चालू करना
एसडीके का कम से कम एपीआई लेवल 23 है और इसके लिए AGP का 7.4 या इसके बाद का वर्शन ज़रूरी है. इसलिए, कॉन्फ़िगरेशन, सोर्स दस्तावेज़ में बताए गए कॉन्फ़िगरेशन से थोड़ा अलग है.
buildscript {
repositories {
google()
mavenCentral()
jcenter()
maven {
url = uri("https://storage.googleapis.com/r8-releases/raw")
}
}
dependencies {
classpath 'com.android.tools:r8:8.0.46'
classpath 'com.android.tools.build:gradle:7.4.1'
}
}
android {
compileOptions {
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
// Sets Java compatibility to Java 8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.3'
}
दूसरा चरण - Proguard या Dexguard से R8 पर माइग्रेट करना
AGP v7.4+ में, R8 का इस्तेमाल बाइनरी के लिए डिफ़ॉल्ट रूप से किया जाता है. यह बाइनरी को छोटा करने, उसे अस्पष्ट करने, और ऑप्टिमाइज़ करने का टूल है. इसलिए, इस समय कोई खास कार्रवाई करने की ज़रूरत नहीं है.
अगर प्रोजेक्ट को AGP 4.0 या इसके बाद के वर्शन से माइग्रेट किया जाता है, तो AGP फ़ाइलें हटाने के बारे में ये चेतावनियां दिखा सकता है:
build.gradle
फ़ाइल मेंuseProguard true
का इस्तेमालgradle.properties
फ़ाइल मेंandroid.enableR8=false
का इस्तेमाल
इन लाइनों को हटाने से, आम तौर पर ये समस्याएं ठीक हो जाती हैं.
Kotlin 1.6 से 1.9 पर माइग्रेट करना
पहला चरण - Kotlin Gradle प्लग इन 1.9.0 पर माइग्रेट करना
अपने ऐप्लिकेशन के टॉप लेवल मॉड्यूल की build.gradle फ़ाइल में, Kotlin Gradle Plugin का वर्शन अपडेट करें. अगर org.jetbrains.kotlin:kotlin-gradle-plugin
मौजूद नहीं है, तो उसे buildscript ब्लॉक की डिपेंडेंसी में जोड़ें.
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0"
}
}
अगर Kotlin Gradle प्लग इन 1.6.X या 1.7.X का इस्तेमाल किया जा रहा है, तो आपको अपने ऐप्लिकेशन को Kotlin-synthetics से माइग्रेट करना होगा. ज़्यादा जानकारी के लिए, डेटा को दूसरी जगह भेजने से जुड़ी आधिकारिक गाइड देखें.
दूसरा चरण - kotlin-stdlib को 1.9.0 पर अपग्रेड करें
अपने ऐप्लिकेशन की build.gradle फ़ाइल में, kotlin-stblib
को 1.9.0 पर अपग्रेड करें.
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.0"
}
पक्का करें कि आपने kotlin-stdlib-jdk7
या kotlin-stdlib-jdk8
के सभी रेफ़रंस हटा दिए हों. दोनों डिपेंडेंसी को kotlin-stdlib
में शामिल कर दिया गया है. यह Kotlin 1.8.0 से शुरू होता है.