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 प्लग इन (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 पर माइग्रेट करना

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 से शुरू होता है.