הערות לגבי הגרסה של פלאגין Android Gradle‏ 8.12

מאגר JCenter הפך לקריאה בלבד ב-31 במרץ 2021. מידע נוסף זמין במאמר עדכון השירות JCenter.

מערכת ה-build של Android Studio מבוססת על Gradle, והפלאגין Android Gradle מוסיף כמה תכונות שספציפיות ל-build של אפליקציות Android. למרות שהפלאגין Android ל-Gradle‏ (AGP) מתעדכן בדרך כלל במקביל ל-Android Studio, הפלאגין (וכל שאר מערכת Gradle) יכול לפעול באופן עצמאי מ-Android Studio ולהתעדכן בנפרד.

בדף הזה מוסבר איך לוודא שהכלים של Gradle מעודכנים ומה כוללים העדכונים האחרונים. הערות הגרסה של גרסאות קודמות של הפלאגין Android Gradle זמינות בהערות הגרסה הקודמות.

סיכום כללי של שינויים משמעותיים שצפויים בפלאגין Android Gradle זמין ב תוכנית הפיתוח של הפלאגין Android Gradle.

לפרטים על הגדרת גרסאות build של Android באמצעות Gradle, אפשר לעיין בדפים הבאים:

מידע נוסף על מערכת ה-build של Gradle זמין במדריך למשתמש של Gradle.

עדכון הפלאגין של Android Gradle

כשמעדכנים את Android Studio, יכול להיות שתופיע בקשה לעדכן אוטומטית את הפלאגין Android Gradle לגרסה הזמינה העדכנית ביותר. אתם יכולים לאשר את העדכון או לציין גרסה באופן ידני בהתאם לדרישות הבנייה של הפרויקט.

אפשר לציין את גרסת הפלאגין בתפריט File > Project Structure > Project ב-Android Studio, או בקובץ build.gradle.kts ברמה העליונה. גרסת הפלאגין חלה על כל המודולים שנבנו בפרויקט הזה ב-Android Studio. בדוגמה הבאה, הפלאגין מוגדר לגרסה 8.12.0 מתוך הקובץ build.gradle.kts:

Kotlin

plugins {
    id("com.android.application") version "8.12.0" apply false
    id("com.android.library") version "8.12.0" apply false
    id("org.jetbrains.kotlin.android") version "2.1.20" apply false
}

מגניב

plugins {
    id 'com.android.application' version '8.12.0' apply false
    id 'com.android.library' version '8.12.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.1.20' apply false
}

זהירות: אין להשתמש בתלות דינמית במספרי גרסאות, כמו 'com.android.tools.build:gradle:8.12.+'. השימוש בתכונה הזו עלול לגרום לעדכוני גרסה לא צפויים ולקושי בפתרון הבדלים בין גרסאות.

אם הגרסה שצוינה של הפלאגין לא הורדה, Gradle יוריד אותה בפעם הבאה שתבנו את הפרויקט או שתלחצו על File >‏ Sync Project with Gradle Files בסרגל התפריטים של Android Studio.

עדכון Gradle

כשמעדכנים את Android Studio, יכול להיות שתופיע בקשה לעדכן גם את Gradle לגרסה הזמינה האחרונה. אתם יכולים לאשר את העדכון או לציין גרסה באופן ידני בהתאם לדרישות הבנייה של הפרויקט.

בטבלה הבאה מפורטת הגרסה של Gradle שנדרשת לכל גרסה של Android Gradle Plugin. כדי לקבל את הביצועים הטובים ביותר, מומלץ להשתמש בגרסה העדכנית ביותר של Gradle ושל הפלאגין.

גרסת הפלאגיןהגרסה המינימלית הנדרשת של Gradle
8.128.13
8.118.13
8.108.11.1
8.98.11.1
8.8‫8.10.2
8.78.9
8.68.7
8.58.7
8.48.6
8.38.4
8.28.2
8.1‫8.0
‫8.0‫8.0

גרסאות ישנות יותר

גרסת הפלאגיןגרסת Gradle הנדרשת
7.47.5
7.37.4
7.2‫7.3.3
7.17.2
7.07.0
‫4.2.0 ומעלה6.7.1
‫4.1.0 ומעלה‫6.5 ומעלה
‫4.0.0 ומעלה‫6.1.1 ומעלה
‫3.6.0 - 3.6.45.6.4 ומעלה
‫3.5.0 - 3.5.4‫5.4.1 ומעלה
‫3.4.0 - 3.4.3‫5.1.1 ומעלה
‫3.3.0 - 3.3.3‫4.10.1 ומעלה
‫3.2.0 - 3.2.1‫4.6 ומעלה
3.1.0 ואילך‫4.4 ומעלה
‫3.0.0 ואילך‫4.1 ומעלה
‫2.3.0 ומעלה‫3.3 ומעלה
‫2.1.3 - 2.2.3‫2.14.1 עד 3.5
‫2.0.0 - 2.1.2‫2.10 - 2.13
‫1.5.0‫2.2.1 - 2.13
‫1.2.0 - 1.3.1‫2.2.1 עד 2.9
‫1.0.0 עד 1.1.3‫2.2.1 עד 2.3

אפשר לציין את גרסת Gradle בתפריט File > Project Structure > Project ב-Android Studio, או לעדכן את גרסת Gradle באמצעות שורת הפקודה. הדרך המומלצת היא להשתמש בכלי שורת הפקודה Gradle Wrapper, שמעדכן את סקריפטים של gradlew. בדוגמה הבאה, הגרסה של Gradle מוגדרת ל-8.13 באמצעות Gradle Wrapper. שימו לב, צריך להריץ את הפקודה הזו פעמיים כדי לשדרג גם את Gradle וגם את Gradle Wrapper עצמו (מידע נוסף זמין במאמר שדרוג Gradle Wrapper).

gradle wrapper --gradle-version 8.13

עם זאת, יכול להיות שהפעולה תיכשל במקרים מסוימים, למשל אם הרגע עדכנתם את AGP והוא כבר לא תואם לגרסת Gradle הנוכחית. במקרה כזה, צריך לערוך את ההפניה להפצת Gradle בקובץ gradle/wrapper/gradle-wrapper.properties. בדוגמה הבאה, הגרסה של Gradle מוגדרת ל-8.13 בקובץ gradle-wrapper.properties.

...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.13-bin.zip
...

תאימות של פלאגין Android Gradle ו-Android Studio

מערכת ה-build של Android Studio מבוססת על Gradle, והפלאגין Android Gradle (AGP) מוסיף כמה תכונות ספציפיות ל-build של אפליקציות Android. בטבלה הבאה מפורטת הגרסה של AGP שנדרשת לכל גרסה של Android Studio.

גרסת Android Studio גרסת AGP נדרשת
השקת תכונות של Narwhal‏ | 2025.1.2 ‫4.0-8.12
Narwhal | 2025.1.1 ‫3.2-8.11
השקת תכונות חדשות של Meerkat‏ | 2024.3.2 ‫3.2-8.10
Meerkat | 2024.3.1 ‫3.2-8.9
השקת תכונות חדשות של Ladybug‏ | 2024.2.2 ‫3.2-8.8
Ladybug | 2024.2.1 ‫3.2-8.7
השקת תכונות של קואלה | 2024.1.2 ‫3.2-8.6
קואלה | 2024.1.1 ‫3.2-8.5
Jellyfish | ‏ 2023.3.1 ‫3.2-8.4
Iguana | 2023.2.1 ‫3.2-8.3
Hedgehog | ‏ 2023.1.1 3.2-8.2
ג'ירפה | 2022.3.1 ‫3.2-8.1
פלמינגו | 2022.2.1 ‫3.2-8.0

גרסאות ישנות יותר

גרסת Android Studio גרסת AGP נדרשת
Electric Eel | 2022.1.1 ‫3.2-7.4
Dolphin | 2021.3.1 ‫3.2-7.3
Chipmunk | 2021.2.1 ‫3.2-7.2
‫Bumblebee | ‏ 2021.1.1 ‫3.2-7.1
‫Arctic Fox ‏ | 2020.3.1 ‫3.1-7.0

מידע על החידושים בפלאגין Android Gradle זמין בהערות לגבי הגרסה של פלאגין Android Gradle.

גרסאות מינימליות של כלים לרמת API ב-Android

יש גרסאות מינימליות של Android Studio ו-AGP שתומכות ברמת API ספציפית. שימוש בגרסאות ישנות יותר של Android Studio או AGP מהגרסאות שנדרשות על ידי targetSdk או compileSdk של הפרויקט עלול לגרום לבעיות בלתי צפויות. מומלץ להשתמש בגרסת התצוגה המקדימה האחרונה של Android Studio ו-AGP כדי לעבוד על פרויקטים שמיועדים לגרסאות תצוגה מקדימה של מערכת ההפעלה Android. אפשר להתקין גרסאות קדם-השקה של Android Studio לצד גרסה יציבה.

הגרסאות המינימליות של Android Studio ו-AGP הן:

רמת ממשק API: גרסת Android Studio מינימלית גרסת AGP מינימלית
36.0 Meerkat | 2024.3.1 Patch 1 8.9.1
35 השקת תכונות של Koala‏ | 2024.2.1 8.6.0
34 Hedgehog | ‏ 2023.1.1 ‫8.1.1
33 פלמינגו | 2022.2.1 7.2

שינויים בניהול הגרסאות (נובמבר 2020)

אנחנו מעדכנים את מספור הגרסאות של הפלאגין של Android Gradle‏ (AGP) כדי שיתאים יותר לכלי ה-build הבסיסי של Gradle.

אלה השינויים הבולטים:

  • מעכשיו, AGP ישתמש בניהול גרסאות סמנטי, ושינויים שעלולים לשבור את התאימות יתבצעו בגרסאות ראשיות.

  • אנחנו מתכננים להוציא גרסה ראשית אחת של AGP בכל שנה, בהתאם לגרסה הראשית של Gradle.

  • הגרסה שתצא אחרי AGP 4.2 תהיה גרסה 7.0, ותדרוש שדרוג לגרסה 7.x של Gradle. כל גרסה ראשית של AGP תדרוש שדרוג של הגרסה הראשית בכלי Gradle הבסיסי.

  • הוצאה משימוש של ממשקי API תתבצע בערך שנה מראש, ותוך כדי כך תהיה זמינה פונקציונליות חלופית. ממשקי API שהוצאו משימוש יוסרו בערך שנה לאחר מכן במהלך העדכון הגדול הבא.

תאימות

רמת ה-API המקסימלית שפלאגין Android Gradle 8.12 תומך בה היא רמת API 36. מידע נוסף על תאימות:

גרסת מינימום גרסת ברירת המחדל הערות
Gradle 8.13 8.13 מידע נוסף זמין במאמר בנושא עדכון Gradle.
SDK Build Tools 35.0.0 35.0.0 מתקינים או מגדירים SDK Build Tools.
NDK לא רלוונטי 27.0.12077973 מתקינים או מגדירים גרסה אחרת של NDK.
JDK 17 17 מידע נוסף זמין במאמר בנושא הגדרת גרסת ה-JDK.

בעיות שתוקנו

פלאגין Android Gradle‏ 8.12.0

בעיות שתוקנו
Android Gradle Plugin
איך מציינים ערך בוליאני ל-experimentalProperties
הפעלה מפורשת של בדיקות מכשירים בסוג build שאינו ברירת המחדל באמצעות AGP לא פועלת
העברה של AGP אל configurations.register כדי למנוע מימוש מהיר של הגדרות
הכללת קובצי MANIFEST.MF מקוננים ב-defaultExcludes
פלאגין Gradle צריך למזג את מניפסט הבדיקה כש-includeAndroidResources == true
קבצי מקור מ-src/extraMain/java לא נוספים לקומפיילר באמצעות built-in-kotlin
הפונקציה SourceDirectories.addGeneratedSourceDirectory לא מתאימה למספר וריאציות
‫AGP 8.8.0-alpha09 גורם לבעיות מסוימות בדיווח של JaCoCo
‫[fused lib - public] adding kmp lib like coil does not work
אי אפשר ליצור בדיקות באמצעות AGP 8.12.0-alpha05 בגלל הצהרת חבילה במניפסט הממוזג
גרסה AGP 8.12.0-alpha07 נכשלת בבניית גרסאות עם הפלאגין Firebase Performance gradle
הוספה של ExtractAnnotations ל-AGP KMP
‫BuiltInKotlinJvmAndroidCompilation לא פועל עם פלאגינים של מהדר Kotlin כמו Anvil ו-KSP
פלאגין של ספרייה מאוחדת נכשל במהלך המשימה `:mergingArtifactAAR_METADATA`
Lint
‫AbstractAnnotationDetector בודק פונקציות או constructors עם עומס יתר שגוי
‫Lint מציג אזהרה כשמשתמשים ב-Config.OLDEST_SDK בבדיקה
קריסות חוזרות של TypoDetector עם IllegalArgumentException במהלך תיקון מהיר
באג: יכול להיות שזו תוצאה חיובית שגויה של Android Studio לגבי הביטוי die die בגרמנית
הכלל SupportAnnotationUsage צריך לתמוך ב-KT-73255
‫[Lint] יותר מדי תוצאות חיוביות שגויות של `MemberExtensionConflict` – תיאור הבעיה שגוי
‫[lint] חיובי כוזב של MemberExtensionConflict (התנגשות בהרחבת חברים) בהתנגשות של שמות פרמטרים
‫[lint] תוצאת חיובית שגויה של PropertyEscape בקובץ מאפיינים תקין