העברה ל-Android Consumer SDK גרסה 2.0.0

עדכונים של Gradle ושל פלאגין של Android Gradle

שדרוג הגרסאות של Gradle ושל פלאגין של Android Gradle

קודם צריך לשדרג את הגרסאות של Gradle ושל הפלאגין של Android Gradle. השדרוג הזה כולל תאימות טובה יותר לתלות מסוימת ב-SDK (כולל Kotlin 1.9), וגם כמה תיקוני באגים קריטיים.

גרסת ה-SDK הראשית הזו דורשת את יחסי התלות הבאים בגרסה עבור פרויקט האפליקציה שלך ל-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

שלב 1 – הפעלת התמיכה בספריית Java 8

מקור

רמת ה-API המינימלית של 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'
}

שלב 2 – מעבר מ-Proguard או מ-Dexguard אל R8

R8, source

ב-AGP מגרסה 7.4 ואילך, הכלי R8 משמש כברירת מחדל לצמצום, להסתרת קוד ולאופטימיזציה של הקובץ הבינארי, כך שלא נדרשת פעולה מיוחדת בשלב הזה.

אם הפרויקט מועבר מ-AGP 4.0 ומעלה, יכול להיות ש-AGP יציג את האזהרות הבאות לגבי הסרת קבצים:

  • שימוש ב-useProguard true בקובץ build.gradle
  • שימוש ב-android.enableR8=false בקובץ gradle.properties

בדרך כלל, הסרת השורות האלה פותרת את הבעיות.

העברה מ-Kotlin 1.6 ל-Kotlin 1.9

שלב 1 – מעבר ל-Kotlin Gradle Plugin 1.9.0

מקור

מעדכנים את גרסת הפלאגין של Kotlin Gradle בקובץ build.gradle של המודול ברמה העליונה של האפליקציה. אם org.jetbrains.kotlin:kotlin-gradle-plugin לא מופיע, מוסיפים אותו ליחסי התלות מהבלוק buildscript.

buildscript {
  dependencies {
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0"
  }
}

אם אתם משתמשים בגרסה 1.6.X או 1.7.X של Kotlin Gradle Plugin, אתם צריכים להעביר את האפליקציה מ-Kotlin-synthetics. מידע נוסף זמין במדריך הרשמי להעברת נתונים.

שלב 2 – שדרוג של kotlin-stdlib לגרסה 1.9.0

מקור

משדרגים את kotlin-stblib לגרסה 1.9.0 בקובץ build.gradle של האפליקציה.

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.0"
}

חשוב להסיר את כל ההפניות אל kotlin-stdlib-jdk7 או אל kotlin-stdlib-jdk8. שני יחסי התלות אוחדו ל-kotlin-stdlib החל מ-Kotlin 1.8.0.