בפרויקטים חדשים נעשה עכשיו שימוש ב-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 בן שתי אותיות או שלוש אותיות.
לדוגמה, אם ברירת המחדל של הלוקאל היא אנגלית אמריקאית:
unqualifiedResLocale=en-US
AGP מוסיף את הלוקאל שמוגדר כברירת מחדל ולוקאלים חלופיים שציינתם, באמצעות ספריות values-* בתיקייה res, לקובץ LocaleConfig שנוצר אוטומטית.
תמיכה אוטומטית בשפה לכל אפליקציה מושבתת כברירת מחדל. כדי להפעיל את התכונה, משתמשים בהגדרה generateLocaleConfig בבלוק androidResources {} של קובץ build.gradle.kts ברמת המודול (קובץ build.gradle אם משתמשים ב-Groovy):
החל מ-AGP 8.1.0-alpha04, Android Lint מכיל בייטקוד שמיועד ל-JVM 17. אם אתם כותבים בדיקות Lint בהתאמה אישית, אתם צריכים לבצע קומפילציה באמצעות JDK 17 ומעלה
ולציין jvmTarget = '17' באפשרויות של מהדר Kotlin.
החל מ-AGP 8.1.0-alpha10, תוצג אזהרה אם לא תגדירו דחיסה של ספרייה מקומית באמצעות DSL במקום המניפסט. בהמשך מוסבר איך לעדכן את ההגדרות כדי להשתמש ב-DSL. כדי לקבל עזרה בעדכונים האלה, אפשר להשתמש בכלי AGP Upgrade Assistant (Tools > AGP Upgrade Assistant).
כדי להשתמש בספריות מקוריות לא דחוסות, צריך להסיר את המאפיין android::extractNativeLibs
מקובץ המניפסט ולהוסיף את הקוד הבא לקובץ build.gradle.kts ברמת המודול (קובץ build.gradle אם משתמשים ב-Groovy):
אם מפעילים את ההגדרה הזו בלי לציין הגדרות חתימה, AGP ישתמש בהגדרת החתימה של ניפוי הבאגים שמוגדרת כברירת מחדל כשמריצים build שאפשר ליצור ממנו פרופיל או לבצע בו ניפוי באגים. ההגדרה הזו מושבתת כברירת מחדל כדי לעודד את יוצרי ה-build להצהיר על הגדרות חתימה ספציפיות של פרופילים.
android.experimental.library.desugarAndroidTest
AGP 8.0
false
הדגל הזה מאפשר ליוצרי ספריות להפעיל desugaring של ספריות ליבה עבור קובצי APK של בדיקות בלי להשפיע על קובץ ה-AAR שנוצר, למשל באמצעות linting.
אנחנו מתכננים לתמוך בהתנהגות הזו ב-Variant API בעתיד.
אם ההגדרה הזו מופעלת, Gradle Managed Devices מאפשרת סוג מכשיר מותאם אישית שמוגדר על ידי המשתמש, שאפשר לספק באמצעות פלאגין. צריך להפעיל את הדגל הזה אם רוצים להשתמש בפלאגין Firebase Test Lab.
android.lint.printStackTrace
AGP 8.0
false
אם האפשרות הזו מופעלת, Android lint מדפיס stacktrace אם הוא קורס. הדגל הזה
מאפשר לבצע את אותן פעולות כמו משתנה הסביבה LINT_PRINT_STACKTRACE.
מציין את המספר המקסימלי של מכשירים מנוהלים בו-זמנית של Gradle (AVD) שיכולים להיות פעילים בכל נקודת זמן. אם הערך הוא 0 או שלילי, אין מספר מקסימלי של מכשירים.
[AGP 8.1.0] הפקודה ./gradlew test נכשלת עם השגיאה Unable to find manifest output אם גם splits.abi.isEnable וגם testOptions.unitTests.isIncludeAndroidResources מוגדרים כ-true
[AGP 8.1.0] הפקודה ./gradlew test נכשלת עם השגיאה Unable to find manifest output אם גם splits.abi.isEnable וגם testOptions.unitTests.isIncludeAndroidResources מוגדרים כ-true
הקומפילציה של play-services-measurement-21.3.0-runtime.jar נכשלת ב-R8 עם השגיאה "Undefined value encountered during compilation" (זוהה ערך לא מוגדר במהלך הקומפילציה)
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-09-29 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-09-29 (שעון UTC)."],[],[],null,[]]