עדכונים ל-Gradle ולפלאגין של Android Gradle
שדרוג הגרסאות של Gradle ושל הפלאגין של Android Gradle
קודם משדרגים את הגרסאות של Gradle ושל הפלאגין של Android Gradle. השדרוג כולל תאימות טובה יותר ליחסי תלות מסוימים של SDK (כולל Kotlin 1.9), וגם תיקוני באגים קריטיים.
כדי להשתמש בגרסה הראשית הזו של ה-SDK, צריך את יחסי התלות הבאים בין הגרסאות בפרויקט של אפליקציית Android:
- גרסת Gradle מגרסה 7.5.0 לפחות, אבל לא יותר מגרסה 7.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
בגרסה 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 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 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.