Android Consumer SDK v2.0.0 के लिए माइग्रेशन

Gradle और Android Gradle प्लगिन के अपडेट

Gradle और Android Gradle प्लगिन के वर्शन अपग्रेड करना

सबसे पहले, Gradle और Android Gradle प्लगिन के वर्शन अपग्रेड करें. इस अपग्रेड में, कुछ एसडीके डिपेंडेंसी (Kotlin 1.9 के साथ) के साथ बेहतर तरीके से काम करने की सुविधा के साथ-साथ, कुछ गंभीर गड़बड़ियों को ठीक करने की सुविधा भी शामिल है.

एसडीके टूल की इस मुख्य रिलीज़ के लिए, आपके Android ऐप्लिकेशन प्रोजेक्ट में इन वर्शन की डिपेंडेंसी होनी चाहिए:

  • Gradle का वर्शन कम से कम v7.5.0 होना चाहिए, लेकिन v7.6.0 से ज़्यादा नहीं होना चाहिए.
  • Android Gradle प्लगिन (एजीपी) का वर्शन 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 लाइब्रेरी के साथ काम करने की सुविधा चालू करना

सोर्स

SDK टूल का कम से कम एपीआई लेवल 23 है और एजीपी का ज़रूरी वर्शन 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'
}
उपभोक्ता और ड्राइवर के लिए बने SDK टूल के सबसे नए वर्शन का इस्तेमाल करने के लिए, दोनों ज़रूरी हैं.

दूसरा चरण - Proguard या Dexguard से R8 पर माइग्रेट करना

R8, सोर्स

एजीपी 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 प्लगिन का वर्शन अपडेट करें. अगर buildscript ब्लॉक की डिपेंडेंसी में org.jetbrains.kotlin:kotlin-gradle-plugin मौजूद नहीं है, तो उसे जोड़ना न भूलें.

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 1.8.0 से, दोनों डिपेंडेंसी को kotlin-stdlib में जोड़ दिया गया है.