Android Gradle Plugin 8.3.0 הוא גרסה מרכזית שכוללת מגוון של תכונות ושיפורים חדשים.
תאימות
רמת ה-API המקסימלית שנתמכת ב-Android Gradle plugin 8.3 היא 34. מידע נוסף על תאימות:
| גרסת המינימום | גרסת ברירת המחדל | פתקים | |
|---|---|---|---|
| Gradle | 8.4 | 8.4 | יש מידע נוסף במאמר בנושא עדכון Gradle. |
| SDK Build Tools | 34.0.0 | 34.0.0 | צריך להתקין או להגדיר את SDK Build Tools. |
| NDK | לא רלוונטי | 25.1.8937393 | צריך להתקין או להגדיר גרסה אחרת של NDK. |
| JDK | 17 | 17 | מידע נוסף זמין במאמר בנושא הגדרת גרסת ה-JDK. |
אלה תכונות חדשות ב-Android Gradle Plugin 8.3.
גרסאות תיקון
בהמשך מפורטת רשימה של גרסאות התיקון ב-Android Studio Iguana וב-Android Gradle Plugin 8.3.
Android Studio Iguana | 2023.2.1 Patch 2 ו-AGP 8.3.2 (אפריל 2024)
העדכון הקטן הזה כולל תיקוני באגים.
Android Studio Iguana | תיקון 1 בגרסה 2023.2.1 ו-AGP 8.3.1 (מרץ 2024)
העדכון הקטן הזה כולל תיקוני באגים.
תמיכה בקטלוגים של גרסאות Gradle
Android Studio תומך בקטלוגים של גרסאות Gradle שמבוססים על TOML. זו תכונה שמאפשרת לכם לנהל תלויות במיקום מרכזי אחד ולשתף תלויות בין מודולים או פרויקטים. מעכשיו קל יותר להגדיר קטלוגים של גרסאות ב-Android Studio באמצעות הצעות בעורך ושילוב עם תיבת הדו-שיח Project Structure (מבנה הפרויקט). איך מגדירים קטלוגים של גרסאות Gradle או איך מעבירים את ה-build לקטלוגים של גרסאות
השלמת קוד וניווט
Android Studio מציע השלמת קוד כשעורכים קטלוג גרסאות בפורמט קובץ TOML או כשמוסיפים תלות מקטלוג גרסאות לקובץ build. כדי להשתמש בהשלמת קוד, מקישים על Ctrl+Space (או על Command+Space ב-macOS). בנוסף, אפשר לעבור במהירות מהפניה לתלות בקובץ build.gradle של האפליקציה למקום שבו היא מוצהרת בקטלוג הגרסאות, על ידי הקשה על Ctrl+b (או על Command+b ב-macOS).

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

אפשר גם לעדכן את התלויות בתיבת הדו-שיח Project Structure (מבנה הפרויקט) בתצוגה Dependencies (תלויות) (File > Project Structure > Dependencies (קובץ > מבנה הפרויקט > תלויות)). כדי לעדכן גרסאות באמצעות תיבת הדו-שיח Project Structure, עוברים למודול ולתלות שרוצים לערוך, ואז מעדכנים את השדה Requested Version. כששומרים את השינויים האלה, קובץ ה-TOML מתעדכן בהתאם. שימו לב: אם גרסת התלות הוגדרה באמצעות משתנה, עדכון הגרסה ישירות בדרך הזו יגרום להחלפת המשתנה בערך מקודד. חשוב לדעת שהסרה של תלות מקובץ build, בין אם משתמשים בתיבת הדו-שיח Project Structure ובין אם לא, לא מסירה את התלות מקטלוג הגרסאות.

בעיות ידועות ומגבלות
אלה בעיות או מגבלות ידועות שקשורות לתמיכה בקטלוגים של גרסאות Gradle ב-Android Studio.
שגיאה בהדגשת הצהרות של כינויי פלאגין בקובצי סקריפט של Kotlin: כשמוסיפים הצהרת פלאגין מהצורה
alias(libs.plugins.example), העורך מוסיף קו אדום מתחת לחלקlibs. זו בעיה מוכרת ב-Gradle בגרסה 8.0 ובגרסאות קודמות, והיא תיפתר בגרסה עתידית של Gradle.תמיכה ב-Android Studio רק בקטלוגים של גרסאות בפורמט TOML: נכון לעכשיו, התמיכה בהשלמת קוד, בניווט ובתיבת הדו-שיח Project Structure (מבנה הפרויקט) ב-Android Studio זמינה רק לקטלוגים של גרסאות שמוגדרים בפורמט קובץ TOML. עם זאת, עדיין אפשר להוסיף קטלוג גרסאות ישירות לקובץ
settings.gradleולהשתמש בתלות שלו בפרויקט.ניווט בקובצי build של KTS לא נתמך: ניווט להגדרת תלות בקטלוג גרסאות באמצעות Control+click (או Command+click ב-macOS) עדיין לא נתמך בקובצי build שנכתבו באמצעות סקריפט Kotlin.
התלויות מתווספות ישירות בסקריפטים של build: Firebase Assistant מוסיף תלויות ישירות לסקריפטים של build במקום דרך קטלוגים של גרסאות.
הפונקציה Find usages לא נתמכת: עדיין אין תמיכה במציאת שימושים במשתנה של קטלוג גרסאות בקובצי build אחרים, בין אם קובץ ה-build הוא ב-KTS או ב-Groovy. כלומר, אם משתמשים בצירוף המקשים Control+קליק (Command+קליק ב-macOS) בהגדרת משתנה בקטלוג גרסאות, לא מגיעים לקובצי ה-build שבהם נעשה שימוש במשתנה.
בתיבת הדו-שיח Project Structure (מבנה הפרויקט) ב-Android Studio מוצגים כמה קובצי קטלוג אם הם נמצאים בתיקיית השורש
gradle, אבל לא מוצגים קטלוגים של composite build (גרסת build מורכבת). לדוגמה, אם יש לכם שני קובצי קטלוג – אחד לאפליקציה ואחד ל-composite build – בתיבת הדו-שיח Project Structure יוצג רק קובץ הקטלוג של האפליקציה. אפשר להשתמש ב-composite build, אבל צריך לערוך ישירות את קובץ ה-TOML שלו.
תובנות נוספות לגבי SDK: בעיות שקשורות למדיניות
ב-Android Studio, אזהרות לגבי lint מוצגות בקבצים build.gradle.kts ו-build.gradle ובתיבת הדו-שיח Project Structure (מבנה הפרויקט) לגבי ערכות SDK ציבוריות שיש בהן הפרות של מדיניות Play ב-Google Play SDK Index. כדאי לעדכן את כל התלויות שמפירות את מדיניות Play, כי ההפרות האלה עלולות למנוע מכם לפרסם ב-Google Play Console בעתיד. האזהרות על הפרת מדיניות הן בנוסף לאזהרות על גרסה לא עדכנית שמוצגות ב-Android Studio.
תמיכה בגרסת compileSdk ב-Android Studio
אם הפרויקט שלכם משתמש ב-compileSdk שלא נתמך בגרסה הנוכחית של Android Studio, מוצגת אזהרה ב-Android Studio. אם יש גרסה כזו, המערכת גם תציע לעבור לגרסה של Android Studio שתומכת ב-compileSdk שבה נעשה שימוש בפרויקט. חשוב לזכור: יכול להיות ששדרוג של Android Studio ידרוש גם שדרוג של AGP.
בנוסף, אם גרסת compileSdk שבה נעשה שימוש בפרויקט לא נתמכת על ידי הגרסה הנוכחית של AGP, מוצגת אזהרה בחלון הכלים Build.
שינויים בהתנהגות של Lint
החל מגרסה Android Gradle plugin 8.3.0-alpha02, כשמריצים lint במודול, מורצים ניתוחים נפרדים של lint עבור הרכיבים הראשיים והרכיבים של הבדיקה במודול. הסיבה לשינוי הזה היא שיפור הביצועים.
כדי לחזור להתנהגות הקודמת, צריך להגדיר את android.experimental.lint.analysisPerComponent=false בקובץ android.experimental.lint.analysisPerComponent=false.gradle.properties
הגדרה של כיווץ מדויק של מקורות המידע מופעלת כברירת מחדל
התכונה 'כיווץ מדויק של משאבים', שמסירה רשומות שלא בשימוש מהקובץ resources.arsc ומבטלת קובצי משאבים שלא בשימוש, מופעלת כברירת מחדל.
כשמפעילים את ההקטנה הזו, טבלת המשאבים מצטמצמת ורק רשומות של תיקיית res שמופיעות בהפניה נכללות ב-APK.
כדי להשבית את ההקטנה המדויקת של משאבים, מגדירים את הערך של android.enableNewResourceShrinker.preciseShrinking ל-false בקובץ gradle.properties של הפרויקט.
בעיות שתוקנו
Android Gradle Plugin 8.3.2
| בעיות שתוקנו | |||
|---|---|---|---|
| Android Gradle Plugin |
|
||
| שילוב Lint |
|
||
Android Gradle plugin 8.3.1
| בעיות שתוקנו | ||
|---|---|---|
| Android Gradle Plugin |
|
|
| שילוב Lint |
|
|
Android Gradle plugin 8.3.0
| בעיות שתוקנו | ||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Android Gradle Plugin |
|
|||||||||||||||||||||||||||||||||||||||||||||||||
| Dexer (D8) |
|
|||||||||||||||||||||||||||||||||||||||||||||||||
| Lint |
|
|||||||||||||||||||||||||||||||||||||||||||||||||
| שילוב Lint |
|
|||||||||||||||||||||||||||||||||||||||||||||||||
| Shrinker (R8) |
|
|||||||||||||||||||||||||||||||||||||||||||||||||