עדכונים ב-Gradle וב-Android Gradle Plugin
שדרוג הגרסאות של Gradle ושל Android Gradle Plugin
קודם צריך לשדרג את הגרסאות של Gradle ושל Android Gradle Plugin. השדרוג הזה כולל תאימות טובה יותר ליחסי תלות מסוימים של SDK (כולל Kotlin 1.9), וגם כמה תיקוני באגים קריטיים.
הגרסה הראשית הזו של ה-SDK דורשת את יחסי התלות הבאים בגרסה עבור פרויקט האפליקציה שלך ל-Android:
- גרסת Gradle לפחות v7.5.0 אבל לא יותר מ-v7.6.0.
- גרסה של Android Gradle Plugin (AGP) בטווח של גרסה v7.4.x.
אפשר לטרגט גרסה חדשה יותר של הפלאגינים, אבל יכול להיות שיוצגו אזהרות על הוצאה משימוש או שחלק מהתכונות החדשות לא יפעלו.
כדי לשנות את גרסת Gradle, משנים את השורה בקובץ /gradle/wrapper/gradle-wrapper.properties
של הפרויקט
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
כדי לשנות את הגרסה של Android Gradle Plugin, צריך לשנות את הקובץ 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
ב-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 Plugin בקובץ build.gradle של המודול ברמה העליונה של האפליקציה. אם org.jetbrains.kotlin:kotlin-gradle-plugin
לא מופיע, מוסיפים אותו ליחסי התלות מהבלוק buildscript.
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0"
}
}
אם אתם משתמשים ב-Kotlin Gradle Plugin בגרסה 1.6.X או 1.7.X, אתם צריכים להעביר את האפליקציה מ-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.