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