נתוני גרסה של פלאגין Android Gradle 8.9

מאגר 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.9.0 מהקובץ build.gradle.kts:

KotlinGroovy
plugins {
    id("com.android.application") version "8.9.0" apply false
    id("com.android.library") version "8.9.0" apply false
    id("org.jetbrains.kotlin.android") version "2.1.10" apply false
}
plugins {
    id 'com.android.application' version '8.9.0' apply false
    id 'com.android.library' version '8.9.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.1.10' apply false
}

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

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

עדכון Gradle

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

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

גרסת הפלאגיןהגרסה המינימלית הנדרשת של Gradle
8.98.11.1
8.88.10.2
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.9 באמצעות Gradle Wrapper. הערה: צריך להריץ את הפקודה הזו פעמיים כדי לשדרג גם את Gradle וגם את Gradle Wrapper עצמו (למידע נוסף, ראו שדרוג של Gradle Wrapper).

gradle wrapper --gradle-version 8.9

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

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

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

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

גרסת Android Studio גרסת AGP הנדרשת
Meerkat | 2024.3.1 3.2-8.9
השקת תכונות בגרסה Ladybug | 2.2.2024 3.2-8.8
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
תצוגה מקדימה של Baklava Meerkat | 2024.3.1 8.9.0
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.9 היא רמת API 35. מידע נוסף על תאימות:

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

בעיות שתוקנו

Android Gradle plugin 8.9.0

בעיות שתוקנו
Android Gradle Plugin
הצגת הודעת שגיאה עם פעולה שאפשר לבצע כשמשימה להגדרת GMD נכשלת בגלל חוסר מקום בכונן
הפלאגין com.android.settings לא מזהה את targetSdk
שגיאה לא מועילה ''compileSdkVersion is not specified. יש להוסיף אותו ל-build.gradle"
האפשרות 'גרסת build נקייה' לא מופיעה בתפריט Build
אולי לתת ל-Kotlin המובנה ב-AGP תמיכה בהוספה אוטומטית של יחסי תלות ב-kotlin stdlib
עדכון של shouldConfigureKotlinPlatformAttribute כדי לטפל בתמיכה מובנית ב-Kotlin
מתן תחביר של kotlin gradle בהודעת השגיאה של 'checkTestedAppObfuscationRelease'
שגיאה ב-Fused Library כשאפשר לשפר את התלות שלא נפתרה
מאפייני המערכת מ-gradle.properties לא מועברים ל-R8 Gradle Workers בתהליכים נפרדים
הגדרת BuiltArtifact.outputFile כסוג קובץ
אי-הצגת מרחב שמות בספרייה הממוזגת לא מניבה הודעת שגיאה טובה
אפשרויות האיתור של שגיאות בקוד ב-AGP 7.1.0-alpha08 לא מאפשרות להשתמש ב-stdout
Android Gradle Plugin: Variants should expose source set names
מטמון ההגדרות רגיש לשינויים בהגדרה של משתנה הסביבה TERM
AndroidComponentsExtension.addSourceSetConfigurations לא פועל כשהנתונים הסטטיסטיים מופעלים
סקריפט האתחול 'C:\Users\mypc\AppData\Local\Temp\ijresolvers2.gradle' שורה: 162
AndroidComponentsExtension.addSourceSetConfigurations לא פועל כשהנתונים הסטטיסטיים מופעלים
Dexer‏ (D8)
java.lang.VerifyError: Verifier rejected class: [0x430] copy1 v2<-v264 type=Undefined cat=3
Lint
Lint קורס עם בדיקות Lint gradle
Lint נכשל עם InstantiationException ללא הודעת חריגה ב-stacktrace של Lint
בדיקת איתור שגיאות בקוד (lint) שזיהתה שגיאה שוואה: ההרשאה android.permission.SCHEDULE_EXACT_ALARM ניתנת רק לאפליקציות מערכת
צריך להחיל את הבדיקה StringFormatInvalid על שיטת Compose stringResource
ההערה RequiresFeature לא פועלת בקובצי Kotlin
kotlin android.os.Handler removeCallbacks Runnable
שגיאת lint של WrongConstant בהגדרה במקום שימוש בערך קבוע באמצעות shift
שגיאת lint של WrongConstant מופיעה פעמיים
חריגת זמן ריצה בגרסאות API מתחת ל-26 עם Java nio API לא נתמכת (ללא שגיאת איתור שגיאות בקוד)
Lint מונע שימוש ב-RequiresApi גם בשיטת עזר פרטית בבדיקות
כשמשתמשים ב-hasRoute(Route::class)‏ .ב-Android Studio, מופיעה אזהרה על RestrictedApi במצב K2
Lint מציע להחליף את @RequiresExtension בבדיקה ב-@SdkSuppress, שלא תומך בתוספים של SDK
Lint מדווח באופן שגוי על פריסה בתצוגת עץ מיותרת כשמשתמשים ב-FrameLayout עם fitSystemWindows כדי לעטוף רכיב RelativeLayout צאצא שדורש ריפוד בהתאמה אישית.
כלל האיתור של שגיאות בקוד (lint) CoarseFineLocation לא מתייחס למאפיין maxSdkVersion
AppLinkSplitToWebAndCustom is UnknownIssue in lint 8.7.3
Lint check StringEscapeDetector crash on "‎\\ "
אזהרה שגויה של איתור שגיאות בקוד לגבי ההערה `@Parcelize` בממשקים אטומים
AS 2024.3.1.4 נתקע לסירוגין בזמן עריכת טקסטים ב-Kotlin.
שילוב איתור שגיאות בקוד
lintVitalRelease לא פועל באופן אוטומטי בזמן ה-build של חבילת האפליקציות
Shrinker‏ (R8)
Gson proguard לא פועל כמו שצריך אחרי השדרוג ל-AGP 8.8
java.lang.VerifyError: Verifier rejected class
Leanback קורס כשמקטינים אותו באמצעות R8 שכלול ב-AGP 8.10.0-alpha04