עדכונים של Gradle ושל הפלאגין של Android Gradle
שדרוג הגרסאות של Gradle ושל הפלאגין של Android Gradle
קודם כל, משדרגים את הגרסאות של Gradle ושל הפלאגין של Android Gradle. השדרוג הזה כולל תאימות טובה יותר עם יחסי תלות מסוימים של SDK (כולל Kotlin 1.9), וגם כמה תיקוני באגים קריטיים.
הגרסה הראשית הזו של ה-SDK דורשת את יחסי התלות הבאים של הגרסאות בפרויקט של האפליקציה ל-Android:
- גרסת Gradle 7.5.0 לפחות, אבל לא יותר מ-7.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
בגרסה 7.4 ומעלה של AGP, הכלי R8 משמש כברירת המחדל לכיווץ, לערפול קוד ולאופטימיזציה של הקובץ הבינארי, כך שאין צורך בפעולה מיוחדת בשלב הזה.
אם הפרויקט הועבר מ-AGP 4.0 ואילך, יכול להיות ש-AGP יציג את האזהרות הבאות לגבי הסרת קבצים:
- שימוש ב-
useProguard trueבקובץbuild.gradle - שימוש אחד (
android.enableR8=false) בקובץgradle.properties
בדרך כלל, הסרת השורות האלה פותרת את הבעיות.
העברה מ-Kotlin 1.6 ל-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"
}
}
אם אתם משתמשים בפלאגין Kotlin Gradle בגרסה 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.