נתוני גרסה של Android Gradle plugin 8.7

מאגר 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 זמין ב תוכנית הפיתוח של הפלאגין של Android Gradle.

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

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

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

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

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

Kotlin

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

Groovy

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

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

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

עדכון Gradle

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

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

גרסת הפלאגיןהגרסה המינימלית הנדרשת של Gradle
8.78.9
8.68.7
8.58.7
8.48.6
8.38.4
8.28.2
8.18.0
8.08.0
7.47.5

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

גרסת הפלאגיןגרסת Gradle הנדרשת
7.37.4
7.27.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.45.4.1 ואילך
3.4.0 עד 3.4.35.1.1 ומעלה
3.3.0 עד 3.3.34.10.1 ואילך
3.2.0 עד 3.2.14.6 ומעלה
3.1.0 ואילך4.4 ומעלה
3.0.0 ואילך4.1 ומעלה
2.3.0 ואילך3.3 ומעלה
2.1.3 עד 2.2.32.14.1 עד 3.5
2.0.0 עד 2.1.22.10 עד 2.13
1.5.02.2.1 עד 2.13
1.2.0 עד 1.3.12.2.1 עד 2.9
1.0.0 עד 1.1.32.2.1 עד 2.3

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

gradle wrapper --gradle-version 8.7

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

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

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

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

גרסת Android Studio גרסת AGP הנדרשת
Ladybug | 2024.2.1 3.2-8.7
השקת תכונות ב-Koala | 2024.1.2 3.2 עד 8.6
Koala | 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
Giraffe | 2022.3.1 3.2 עד 8.1
Flamingo | 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 לגרסת ה-preview כדי לעבוד על פרויקטים שמטרגטים גרסאות preview של מערכת ההפעלה Android. אתם יכולים להתקין גרסאות טרום-השקה של Android Studio לצד גרסה יציבה.

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

רמת ממשק API: הגרסה המינימלית של Android Studio הגרסה המינימלית של AGP
35 השקת תכונות ב-Koala | 2024.2.1 8.6.0
34 Hedgehog | 2023.1.1 8.1.1
33 Flamingo | 2022.2.1 7.2

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

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

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

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

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

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

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

תאימות

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

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

שינוי בהתנהגות של Lint

החל מגרסה 8.7.0-alpha08 של הפלאגין של Android Gradle, אם יש LintError כשמריצים את ה-lint באמצעות Gradle, משימת ניתוח ה-lint גורמת להשלכת חריגה. השינוי הזה מונע שמירה של שגיאות נדירות במטמון של ה-build.

לצערנו, השינוי הזה מפר את ה-builds של פרויקטים עם מכונות LintError אמיתיות בקובצי הבסיס של איתור השגיאות. הודעת השגיאה מכילה מידע על בדיקות ה-lint שגורמות לבעיה. במקרים מסוימים, עדכון התלות בספרייה המתאימה עשוי לפתור את הבעיה. אם לא, תוכלו להשבית את בדיקת האיתור של שגיאות הקוד עד שהבעיה תטופל על ידי מחבר הספרייה.

בעיות שתוקנו

Android Gradle plugin 8.7.0

בעיות שתוקנו
Android Gradle Plugin
AGP צריך לציין שהוא תומך ב-API 35 שעומד להימסר בקרוב
AGP 8.5: הרבה יותר משימות mergeDebugResources פועלות, מה שמאט את תהליך ה-build
הגדרת ndk 27 כ-NDK שמוגדר כברירת מחדל ב-AGP.
AGP צריך לציין שהוא תומך ב-API 35 שעומד להימסר בקרוב
AGP צריך לציין שהוא תומך ב-API 35 שעומד להימסר בקרוב
Running Android lint failed with NoSuchFileException
BuildType#initWith מעתיק את הבלוק של העיבוד לאחר הייצור, אבל ההגדרות של ProGuard לא חלות
אי אפשר למזג תגים מסוג foregroundServiceType
Running Android lint failed with NoSuchFileException
Lint
רצוי שה-Lint יבדוק אם יש אובייקטים לא חוקיים שמשמשים כ-ViewGroups
"android:host is missing" עבור כתובות URI עם מארח null
חוסר תאימות של KtAnalysisSessionProvider לבדיקות איתור שגיאות בקוד (lint) שנוספו בגרסה 8.7.0-alpha04
"False positive" WrongConstant when using PackageManager.ResolveInfoFlags.of with Kotlin

Android Gradle plugin 8.7.1

בעיות שתוקנו
Android Gradle Plugin
agp docs have a lot of TBD
Lint
AGP 8.6.1: רגרסיה – שגיאה ב-lint של WrongConstant כשמשתמשים ב-[Int].toLong()‎ בתוך @LongDef ב-Kotlin
שגיאת איתור שגיאות בקוד (lint) מסוג 'צריך לציין מארח אחד לפחות' כשמגדירים סכימה של סינון כוונות מסוג http או https

Android Gradle plugin 8.7.2

בעיות שתוקנו
Lint
AGP 8.7.0 - Lint False Positive RestrictedApi on NavOptionsBuilder.popUpTo
Shrinker‏ (R8)
[R8 8.6.27] שיטת ההטמעה הוחלפה ב-'throw null'
קובצי ברירת המחדל של Android Proguard גורמים להצגת אזהרה כשמשתמשים בהם עם הגרסה הנוכחית של R8
אם ההודעה גדולה מדי, ה-MissingStartupProfileItemsDiagnostic גורם לקריסה של לקוח Gradle עם הודעת שגיאה מסוג 'אין מספיק זיכרון'