בדף הזה מפורט מידע על תאימות לגרסת Kotlin של Navigation SDK, וגם הנחיות למעבר לגרסה חדשה יותר.
דרישות הגרסה של Navigation SDK Kotlin
בטבלה הבאה מפורטות דרישות הגרסה של Kotlin והגרסאות המומלצות של AGP ו-Gradle לגרסאות האחרונות של Navigation SDK.
גרסת Navigation SDK | גרסת Kotlin (נדרשת) | גרסאות של Android Gradle Plugin (AGP) ו-Gradle (מומלץ) |
---|---|---|
6.2 ומעלה | 2.1 |
|
6.0 - 6.2 | 2.0 |
|
5.1 - 5.99.1 | 1.9 | מומלץ להשתמש ב-AGP 7.3 ואילך, שכולל פתרון עקיף ל-JDK-8272564. |
תאימות לגרסת Kotlin
Kotlin 2.1 תומכת בתאימות לאחור עם Kotlin 2.0. המשמעות היא שאם אתם כבר משתמשים ב-Kotlin 2.0 עם Navigation SDK, תוכלו לשדרג ל-Kotlin 2.1 בלי שתצטרכו לפתור את כל השינויים שגורמים לבעיות. עם זאת, זה רלוונטי רק לתכונות שפה יציבות. אם אתם משתמשים בתכונות אלפא, בטא או ניסיוניות בשפת Kotlin, יכול להיות שתצטרכו לבצע שינויים נוספים כשמשדרגים.
הקלה על המעבר: feature flags של תאימות ל-Kotlin
ב-Kotlin יש שני סימונים שעוזרים להגביל שינויים שעלולים לשבור את התאימות: https://kotlinlang.org/docs/compatibility-modes.html
גרסה בשפה X.Y
הדגל הזה מחזיר שינויים שגורמים לבעיות בהתנהגות של גרסה קודמת של Kotlin.
לדוגמה, אם אתם משתמשים ב-Kotlin 2.0, אתם יכולים לציין את [ -
language-version 2.0]
והשינויים החדשים שגורמים לבעיות תאימות לא יחולו יותר:
android {
kotlinOptions {
languageVersion = '2.0'
}
}
api-version X.Y
הדגל הזה מחזיר שגיאת Gradle build כשמשתמשים ב-API מגרסת Kotlin חדשה יותר מ-apiVersion
.
android {
kotlinOptions {
apiVersion = '2.0'
}
}
גישה ממוקדת יותר
בנוסף לשימוש בדגלי תאימות של Kotlin, מומלץ לעיין בהערות הגרסה של Kotlin ולבחור את ההתנהגויות שרוצים לשמור מהגרסה שממנה משדרגים. במדריכי התאימות של Kotlin לכל גרסה מופיעה רשימה של שינויים שעלולים לשבור תאימות ודגלים שאפשר להגדיר כדי לשמור על ההתנהגות המקורית:
שדרוגים עתידיים של Kotlin
ב-Kotlin יוצאת גרסה חדשה (כלומר, גרסת שפה) כל 6 חודשים, ובדרך כלל Google משלבת את הגרסה האחרונה כברירת מחדל במוצרים שלה חודש או חודשיים אחרי כן. גרסאות קודמות של Kotlin כללו שינויים שגרמו לבעיות, ולכן לקוחות של Navigation SDK נדרשו לשדרג לגרסה חדשה יותר. לכן, מומלץ לתכנן שדרוג של Kotlin כל 6 חודשים כשמשתמשים בגרסה האחרונה של Navigation SDK.