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

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

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

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

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

  • Gradle वर्शन कम से कम 7.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 लाइब्रेरी सहायता चालू करें

सोर्स

SDK टूल का कम से कम एपीआई लेवल 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 प्लगिन वर्शन अपडेट करें. बिल्डस्क्रिप्ट ब्लॉक से डिपेंडेंसी में 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-सिंथेटिक्स से माइग्रेट करना होगा. ज़्यादा जानकारी के लिए, आधिकारिक डेटा को दूसरी जगह भेजने से जुड़ी गाइड देखें.

दूसरा चरण - kotlin-stdlib को 1.9.0 में अपग्रेड करें

सोर्स

अपनी ऐप्लिकेशन बिल्ड.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 में इंटिग्रेट कर दिया गया है.