בפרויקטים חדשים, כברירת מחדל, נעשה שימוש ב-Kotlin DSL (build.gradle.kts) להגדרת ה-build. כך אפשר ליהנות מחוויית עריכה טובה יותר מאשר ב-Groovy DSL (build.gradle), עם הדגשת תחביר, השלמת קוד ואפשרות לנווט להצהרות. שימו לב: אם אתם משתמשים ב-AGP 8.1 וב-Kotlin DSL להגדרת build, מומלץ להשתמש ב-Gradle 8.1 כדי ליהנות מחוויית השימוש הטובה ביותר. למידע נוסף, ראו מדריך ההעברה ל-Kotlin DSL.
תמיכה אוטומטית בשפה לכל אפליקציה
החל מגרסה Android Studio Giraffe Canary 7 וגרסה AGP 8.1.0-alpha07, אפשר להגדיר את האפליקציה כך שתתמוך באופן אוטומטי בהעדפות שפה לכל אפליקציה. על סמך משאבי הפרויקט, הפלאגין של Android Gradle יוצר את הקובץ LocaleConfig ומוסיף לו הפניה בקובץ המניפסט הסופי, כך שאין צורך לעשות זאת באופן ידני. AGP משתמש במשאבים בתיקיות res של מודולי האפליקציה ובכל יחסי התלות של מודולי הספריות כדי לקבוע את האזורים הגיאוגרפיים שצריך לכלול בקובץ LocaleConfig.
חשוב לדעת: התכונה האוטומטית של שינוי השפה לכל אפליקציה תומכת באפליקציות עם Android 13 (רמת API 33) ואילך. כדי להשתמש בתכונה, צריך להגדיר את הערך של compileSdkVersion ל-33 ומעלה. כדי להגדיר העדפות שפה לכל אפליקציה בגרסאות קודמות של Android, עדיין צריך להשתמש בממשקי ה-API ובבוררי השפות באפליקציה.
כדי להפעיל תמיכה אוטומטית בשפות לכל אפליקציה, מציינים את ברירת המחדל של האזור:
בתיקייה res של מודול האפליקציה, יוצרים קובץ חדש בשם resources.properties.
בקובץ resources.properties, מגדירים את מיקום ברירת המחדל באמצעות התווית unqualifiedResLocale. כדי ליצור את שמות הלוקאלים, משלבים את קוד השפה עם קודי הסקריפט והאזור האופציונליים, ומפרידים ביניהם באמצעות מקף:
שפה: צריך להשתמש בקוד ISO 639-1 של שתי או שלוש אותיות.
אזור (אופציונלי): אפשר להשתמש בקוד ISO 3166-1-alpha-2 בן שתי האותיות או בקוד UN_M.49 בן שלוש הספרות.
לדוגמה, אם אזור ברירת המחדל שלכם הוא אנגלית (ארה"ב):
unqualifiedResLocale=en-US
AGP מוסיף את לוקאל ברירת המחדל הזה ואת כל הלוקאלים החלופיים שציינתם, באמצעות ספריות values-* בתיקייה res, לקובץ LocaleConfig שנוצר באופן אוטומטי.
התמיכה האוטומטית בשפות ספציפיות לאפליקציות מושבתת כברירת מחדל. כדי להפעיל את התכונה, משתמשים בהגדרה generateLocaleConfig בבלוק androidResources {} בקובץ build.gradle.kts ברמת המודול (קובץ build.gradle אם משתמשים ב-Groovy):
החל מ-AGP 8.1.0-alpha04, Android Lint מכיל קוד בייט שמטרגט את JVM 17. אם כותבים בדיקות איתור שגיאות מותאמות אישית, צריך לבצע הידור באמצעות JDK 17 ואילך ולציין את הערך jvmTarget = '17' באפשרויות של קומפילטור Kotlin.
החל מ-AGP 8.1.0-alpha10, תופיע אזהרה אם לא תגדירו דחיסת ספרייה מקומית באמצעות ה-DSL במקום המניפסט. בהנחיות הבאות מוסבר איך לעדכן את ההגדרות כדי להשתמש ב-DSL. כדי לקבל עזרה בביצוע העדכונים האלה, תוכלו להשתמש בכלי לשדרוג של AGP (כלים > כלי לשדרוג של AGP).
כדי להשתמש בספריות מקומיות לא דחוסות, מסירים את המאפיין android::extractNativeLibs מהמניפסט ומוסיפים את הקוד הבא לקובץ build.gradle.kts ברמת המודול (קובץ build.gradle אם משתמשים ב-Groovy):
הפעלה של האפשרות הזו בלי לציין הגדרות חתימה גורמת ל-AGP להשתמש בהגדרת ברירת המחדל לחתימה לצורך ניפוי באגים כשמריצים גרסה זמינה לפרופיל או לצורך ניפוי באגים. הדגל הזה מושבת כברירת מחדל כדי לעודד את מחברי ה-build להצהיר על הגדרות חתימה ספציפיות לפרופיל.
android.experimental.library.desugarAndroidTest
AGP 8.0
false
הדגל הזה מאפשר לבוני הספריות להפעיל הסרה של סוכר בספריית הליבה לחבילות APK לבדיקה, בלי להשפיע על ה-AAR שנוצר, למשל באמצעות איתור שגיאות בקוד.
בסופו של דבר, אנחנו מתכננים לתמוך בהתנהגות הזו ב-Variant API.
אם ההגדרה הזו מופעלת, אפשר להגדיר ב-Gradle Managed Devices סוג מכשיר מותאם אישית שיכול להיות מסופק על ידי פלאגין. צריך להפעיל את הדגל הזה אם רוצים להשתמש בפלאגין של Firebase Test Lab.
android.lint.printStackTrace
AGP 8.0
false
אם ההגדרה מופעלת, Android lint מדפיס סטאק-טריי אם מתרחש קריסה. הדגל הזה יש לו את אותן יכולות כמו משתנה הסביבה LINT_PRINT_STACKTRACE.
מציין את המספר המקסימלי של מכשירי Gradle Managed Devices (AVD) שיכולים להיות פעילים בו-זמנית בכל רגע נתון. אם הערך הוא 0 או שלילי, אין מספר מכשירים מקסימלי.
[AGP 8.1.0] ./gradlew test fails with "Unable to find manifest output" if both splits.abi.isEnable and testOptions.unitTests.isIncludeAndroidResources are true
[AGP 8.1.0] ./gradlew test fails with "Unable to find manifest output" if both splits.abi.isEnable and testOptions.unitTests.isIncludeAndroidResources are true
לא להריץ את המשימה dexing על הכיתות של פרויקטים משניים שכבר עברו תהליך dex באמצעות טרנספורמציות של ארטיפקטים
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.