Android Gradle Plugin 8.8.0 (ינואר 2025)

‫Android Gradle Plugin 8.8.0 הוא גרסה מרכזית שכוללת מגוון של תכונות ושיפורים חדשים.

תאימות

רמת ה-API המקסימלית שנתמכת על ידי Android Gradle plugin 8.8 היא רמת API 35. מידע נוסף על תאימות:

גרסת מינימום גרסת ברירת המחדל הערות
Gradle ‫8.10.2 ‫8.10.2 מידע נוסף זמין במאמר בנושא עדכון 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.8.0

בעיות שתוקנו
Android Gradle Plugin
כדאי להוסיף הערה לסוג הקלט של JacocoTransform כ-@Classpath
‫com.android.build.api.variant.GeneratesApk צריך לחשוף את minSdk
התוסף com.android.settings לא מזהה את targetSdk
הפונקציה SourceDirectories.addGeneratedSourceDirectory לא מתאימה למספר וריאציות
הטמעה של סימון להשבתת בדיקת הגרסה המינימלית של AGP
יש אינטראקציות מבלבלות בין AGP לבין הגדרת אפשרויות של מהדר Kotlin
‫AGP צריך לחשוף BuiltArtifactLoader עבור APK של פרויקט היעד בפרויקטים של com.android.test
‫[AGP] ספק Lazy SdkComponents.ndkDirectory לא מצליח להפיק ערך, אבל eager android.ndkDirectory API פועל
אפשרויות בנייה: הוספנו אפשרות חדשה של 'הגדרת הפעלת בנייה' והגדרנו אותה כברירת מחדל
לא ניתן לפתור את BuildConfig בבדיקות יחידה כשמשתמשים ב-android.enableBuildConfigAsBytecode=true
חבילות APK שנוצרו מ-App Bundle לא תומכות בארגז החול לפרטיות
התוסף com.android.settings לא מזהה את targetSdk
Dexer (D8)
‫Desugar library 2.1.0 לא פועלת עם AGP 8.5.2
Lint
חוסר תאימות של KtAnalysisSessionProvider לבדיקות lint שהוצגו בגרסה 8.7.0-alpha04
‫"False positive" WrongConstant כשמשתמשים ב-PackageManager.ResolveInfoFlags.of עם Kotlin
שגיאת Lint ‏'At least one host must be specified' (צריך לציין לפחות מארח אחד) כשמגדירים סכמת intent-filter של http או https
טיפול בהערות לשימוש בסוגים במקרים נוספים עבור UnknownNullness lint
‫AGP 8.6.1: רגרסיה – שגיאת Lint מסוג WrongConstant כשמשתמשים בפונקציה [Int].toLong()‎ בתוך ‎ @LongDef ב-Kotlin
‫AGP 8.7.0 – Lint False Positive RestrictedApi on NavOptionsBuilder.popUpTo
הודעת ה-lint WrongConstant מופיעה פעמיים
האזהרה 'MonochromeLauncherIcon: Monochrome icon is not defined' לא נתפסת על ידי Android Studio
‫AbstractAnnotationDetector בודק פונקציות או constructors עם עומס יתר שגוי
‫Lint ImportAliasTestMode לא יוצר כינויי ייבוא לפונקציות ברמה העליונה
הודעת ה-lint WrongConstant מופיעה פעמיים
אזהרות חדשות של lint לגבי ObsoleteSdkInt עם AGP 8.8
תוצאת בדיקת Lint חיובית שגויה android.permission.SCHEDULE_EXACT_ALARM ניתנת רק לאפליקציות מערכת
מצב K2 מציג אזהרה לגבי RestrictedApi כשמשתמשים ב-‎ .hasRoute(Route::class) ב-Android Studio
Lint Integration
משימת Lint variant לא נמצאה אחרי ההערכה
ה-Linting נכשל כשמייבאים קובץ AAR עם קבצי הטמעה

פלאגין Android Gradle‏ 8.8.1

בעיות שתוקנו
Dexer (D8)
הוספת OpenJDK 23 לבדיקה
Shrinker (R8)
‫java.lang.AbstractMethodError: Receiver class [...]$$Lambda$[...] does not define or inherit an implementation of the resolved method [...] of interface [...]
‫NPE ב-Enqueuer שקשור ל-record DexCallSite
‫R8 8.7.18 גורם לחריגה של מצביע null בזמן ריצה כשמפעילים את job?.cancel
‫java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/LazyThreadSafetyMode
נראה ש-Monzo משתמשת בכמות זמן מוגזמת ב-tree shaking
‫AGP 8.8 fail release build : R8: java.lang.NullPointerException: Cannot read field "b" because the return value of "com.android.tools.r8.internal.BS.a(com.android.tools.r8.internal.cR)" is null`

פלאגין Android Gradle‏ 8.8.2

בעיות שתוקנו
Android Gradle Plugin
Initialization script 'C:\Users\mypc\AppData\Local\Temp\ijresolvers2.gradle' line: 162
Shrinker (R8)
‫Gson proguard לא פועל כמו שצריך אחרי שדרוג ל-AGP 8.8
‫java.lang.VerifyError: Verifier rejected class
Leanback crashes when minified with R8 included in AGP 8.10.0-alpha04