פלאגין של Android Gradle 9.3 הוא גרסה משנית שכוללת מגוון של תכונות ושיפורים חדשים.
תאימות
רמת ה-API המקסימלית שנתמכת בפלאגין של Android Gradle 9.3 היא רמת API 37.
מידע נוסף על תאימות:
|
גרסת המינימום |
גרסת ברירת המחדל |
הערות |
| Gradle |
9.5.0 |
9.5.0 |
יש מידע נוסף במאמר בנושא עדכון Gradle. |
| SDK Build Tools |
36.0.0 |
36.0.0 |
צריך להתקין או להגדיר את SDK Build Tools. |
| NDK |
לא רלוונטי |
28.2.13676358 |
צריך להתקין או להגדיר גרסה אחרת של NDK. |
| JDK |
17 |
17 |
מידע נוסף זמין במאמר בנושא הגדרת גרסת ה-JDK. |
משימת Gradle עצמאית של R8 Configuration Analyzer
בפלאגין של Android Gradle 9.3 נוספה משימה ייעודית של Gradle להפעלת כלי הניתוח של הגדרות R8 בבידוד. הכלי R8 Configuration Analyzer עוזר לכם לבצע אופטימיזציה של כללי כיווץ הקוד וההסתרה באפליקציה.
./gradlew :app:analyzeReleaseR8Config
המשימה :app:analyzeReleaseR8Config יוצרת את הדוח בלי להשלים את צינור העיבוד של ה-APK או ה-Bundle. כך נוצר לולאת משוב קצרה יותר,
שמזרזת את האיטרציה של המפתחים בתהליך שיפור כללי השמירה. לחלופין, אפשר ליצור את הדוח באופן אוטומטי על ידי הפעלת גרסת build להפצה של R8 (לדוגמה, assembleRelease או bundleRelease).
מידע נוסף זמין במאמר בנושא הרצת משימת Gradle עצמאית ליצירת דוח.
בעיות שתוקנו
פלאגין של Android Gradle 9.3.3
| בעיות שתוקנו |
| Android Gradle Plugin |
|
ה-DSL החדש של אופטימיזציה { enable = true } ב-AGP 9.3.0 לא מגדיר את isMinifyEnabled באובייקט ApplicationVariant
|
|
| Dexer (D8) |
|
D8 9.2.14 איטי בכ-38% מ-8.13.6 ב-`mergeProjectDexDebug` בקלט/פלט זהים
|
|
| Shrinker (R8) |
|
מצב ניפוי באגים ב-D8: ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 31 — regression between R8 8.8.34 and 8.9.27
|
|
VerifyError: Outliner incorrectly extends try-catch region, causing uninitialized register
|
|
R8 כותב קובץ .kotlin_module עם :בשם שלו, וכך נוצר שם קובץ לא תקין ב-Windows
|
|
אי-דטרמיניזם ב-R8: קלט זהה יוצר dex/מיפוי שונים (רגרסיה מ-Retain Assume instructions in LIR)
|
|
שכפול מיפוי באמצעות R8 9.1
|
|
AGP יוצר לסירוגין קובצי dex שנכשלים באימות וגורמים לקריסת האפליקציה בהפעלה
|
|
NullPointerException: Cannot invoke Position.getOutermostCaller() because entryPosition is null
|
|
צריכת זיכרון גבוהה לכל כלל
|
|
R8: VerifyError ב-Android 4.4
|
|
פלאגין של Android Gradle 9.3.2
| בעיות שתוקנו |
| Lint |
|
AGP 9.3 lint קורס ב-JDK 17 — NoSuchMethodError: java.util.List.removeLast() in bundled intellij-core JavaDocParser
|
|
פלאגין של Android Gradle 9.3.1
| בעיות שתוקנו |
|
לא סומנו בעיות ציבוריות שתוקנו ב-AGP 9.3.1
|
פלאגין של Android Gradle 9.3.0-rc02
| בעיות שתוקנו |
|
לא סומנו בעיות ציבוריות כבעיות שתוקנו ב-AGP 9.3.0-rc02
|
פלאגין של Android Gradle 9.3.0-rc01
| בעיות שתוקנו |
|
לא סומנו בעיות ציבוריות כבעיות שתוקנו ב-AGP 9.3.0-rc01
|
פלאגין של Android Gradle 9.3.0-alpha12
| בעיות שתוקנו |
| Android Gradle Plugin |
|
כשל בבנייה: דליפת ידיות קבצים ב-classes.jar ב-compile_library_classes_jar מונעת בנייה מחדש ב-Windows עד להפעלה מחדש של IDE
|
|
| Lint |
|
Lint מתייחס לספריית Java שיובאה כפרויקט Android, ומתעלם מגרסת ה-SDK של הקומפילציה
|
|
פלאגין של Android Gradle 9.3.0-alpha11
| בעיות שתוקנו |
|
לא סומנו בעיות ציבוריות כבעיות שתוקנו ב-AGP 9.3.0-alpha11
|
פלאגין Android Gradle 9.3.0-alpha10
| בעיות שתוקנו |
|
לא סומנו בעיות ציבוריות כבעיות שתוקנו ב-AGP 9.3.0-alpha10
|
פלאגין של Android Gradle 9.3.0-alpha09
| בעיות שתוקנו |
|
לא סומנו בעיות ציבוריות כבעיות שתוקנו ב-AGP 9.3.0-alpha09
|
פלאגין של Android Gradle 9.3.0-alpha08
| בעיות שתוקנו |
|
לא סומנו בעיות ציבוריות כבעיות שתוקנו ב-AGP 9.3.0-alpha08
|
פלאגין Android Gradle 9.3.0-alpha07
| בעיות שתוקנו |
|
לא סומנו בעיות ציבוריות כבעיות שתוקנו ב-AGP 9.3.0-alpha07
|
פלאגין של Android Gradle 9.3.0-alpha06
| בעיות שתוקנו |
| Android Gradle Plugin |
|
JavaDocGenerationTask צריך להשתמש בעובדים
|
|
פלאגין של Android Gradle 9.3.0-alpha05
| בעיות שתוקנו |
| Shrinker (R8) |
|
מיפוי ההסתרה L8 לא נכלל ב-app mapping.txt
|
|
פלאגין של Android Gradle 9.3.0-alpha04
| בעיות שתוקנו |
| Android Gradle Plugin |
|
המערכת מתעלמת מקבוצת המקורות keepRules של KMP אם לא מציינים את האפשרות consumerKeepRules.publish = true
|
|
פלאגין של Android Gradle 9.3.0-alpha03
| בעיות שתוקנו |
| Android Gradle Plugin |
|
java.lang.ClassNotFoundException: Didn't find class "com.android.tools.r8.RecordTag" after upgrading gradle to 9.2.0
|
|
| Lint |
|
שגיאת Lint כשכיווץ מקורות המידע מושבת
|
|
פלאגין של Android Gradle 9.3.0-alpha02
| בעיות שתוקנו |
| Android Gradle Plugin |
|
הגשת בקשה להוספת תכונה: הוספת תמיכה ב-native_libs_merge_blame_file לפלאגין של Android Gradle
|
|
| Lint |
|
חסר גרש הפוך בהודעת בעיה של AnnotationDetector
|
|
שגיאת Lint כשכיווץ מקורות המידע מושבת
|
|
פלאגין Android Gradle 9.3.0-alpha01
| בעיות שתוקנו |
| Android Gradle Plugin |
|
בעיה בקודי גרסאות שנוצרו אוטומטית
|
|
AGP: מעבר משימוש ב-Project כסימון תלות
|
|
| Lint |
|
תוצאה חיובית שגויה של Lint עם UseKtx
|
|
פלאגין של Android Gradle 9.3.0
| בעיות שתוקנו |
|
לא סומנו בעיות ציבוריות כבעיות שתוקנו ב-AGP 9.3.0
|
עודכן ה-DSL של האופטימיזציה כדי להגדיר כללי שמירה של R8
נוסף DSL מעודכן לאופטימיזציה כדי להגדיר כללי שמירה ספציפיים (keep rule) לאופטימיזציה של R8, שנתמכים על ידי מודולים של אפליקציות ובדיקות של מודולים של ספריות. כדי להגדיר אופטימיזציה באמצעות ה-DSL המעודכן, צריך להשתמש בבלוק optimization החדש. באפליקציות, מגדירים את הבלוק optimization בתוך סוג build (כמו release או debug) בסקריפט ה-build ברמת האפליקציה. ה-DSL המעודכן לאופטימיזציה מפשט את ההגדרה של R8:
- הפעלת האופטימיזציה מאפשרת גם אופטימיזציה של קוד וגם כיווץ מקורות מידע שעבר אופטימיזציה.
- כבר לא צריך לציין את קובץ ברירת המחדל של כללי השמירה ב-Android.
שימו לב: אנחנו ממשיכים לתמוך ב-DSL מדור קודם.
הצגת קבוצות של מקורות להגדרת כללי שמירה
ממקמים את כללי השמירה בקובץ src/<variant>/keepRules/ של קבוצת המקור, עם הסיומת .keep. הגרסה המעודכנת של שפת התחום הספציפית (DSL) לאופטימיזציה ושפת התחום הספציפית מדור קודם תומכות במקורות של כללי שמירה. אפשר להשתמש בקבוצות מקורות לכללי שמירה במודולים של אפליקציות, במודולים של ספריות וכדרך להגדיר כללי צריכה במודולים של Kotlin Multiplatform (KMP).