پروژههای جدید اکنون به طور پیشفرض از Kotlin DSL ( build.gradle.kts ) برای پیکربندی ساخت استفاده میکنند. این روش با هایلایت کردن سینتکس، تکمیل کد و پیمایش به اعلانها، تجربه ویرایش بهتری نسبت به Groovy DSL ( build.gradle ) ارائه میدهد. توجه داشته باشید که اگر از AGP 8.1 و Kotlin DSL برای پیکربندی ساخت استفاده میکنید، برای بهترین تجربه باید از Gradle 8.1 استفاده کنید. برای کسب اطلاعات بیشتر، به راهنمای مهاجرت Kotlin DSL مراجعه کنید.
پشتیبانی خودکار از زبانهای مختلف در هر برنامه
با شروع از اندروید استودیو Giraffe Canary 7 و AGP 8.1.0-alpha07، میتوانید برنامه خود را طوری پیکربندی کنید که به طور خودکار از تنظیمات زبان هر برنامه پشتیبانی کند. بر اساس منابع پروژه شما، افزونه Android Gradle فایل LocaleConfig را تولید میکند و در فایل مانیفست نهایی به آن ارجاع میدهد، بنابراین دیگر لازم نیست این کار را به صورت دستی انجام دهید. AGP از منابع موجود در پوشههای res ماژولهای برنامه شما و هرگونه وابستگی ماژول کتابخانهای برای تعیین زبانهایی که باید در فایل LocaleConfig گنجانده شوند، استفاده میکند.
توجه داشته باشید که ویژگی خودکار زبان برای هر برنامه از برنامههایی پشتیبانی میکند که اندروید ۱۳ (سطح API ۳۳) یا بالاتر را اجرا میکنند. برای استفاده از این ویژگی، باید compileSdkVersion روی ۳۳ یا بالاتر تنظیم کنید. برای پیکربندی تنظیمات زبان برای هر برنامه برای نسخههای قبلی اندروید، همچنان باید از APIها و انتخابگرهای زبان درون برنامهای استفاده کنید .
برای فعال کردن پشتیبانی خودکار زبان برای هر برنامه، یک زبان پیشفرض را مشخص کنید:
در پوشه res ماژول app، یک فایل جدید به نام resources.properties ایجاد کنید.
در فایل resources.properties ، زبان پیشفرض را با برچسب unqualifiedResLocale تنظیم کنید. برای تشکیل نامهای زبان، کد زبان را با کدهای اسکریپت و منطقه اختیاری ترکیب کنید و هر کدام را با یک خط تیره از هم جدا کنید:
برای مثال اگر زبان پیشفرض شما انگلیسی آمریکایی باشد:
unqualifiedResLocale=en-US
AGP این زبان پیشفرض و هر زبان جایگزینی که شما مشخص کردهاید را با استفاده از دایرکتوریهای values-* در پوشه res به فایل LocaleConfig که به صورت خودکار تولید شده است، اضافه میکند.
پشتیبانی خودکار زبان برای هر برنامه به طور پیشفرض غیرفعال است. برای فعال کردن این ویژگی، از تنظیم generateLocaleConfig در بلوک androidResources {} از فایل build.gradle.kts در سطح ماژول (فایل build.gradle اگر از Groovy استفاده میکنید) استفاده کنید:
Lint اندروید حاوی بایتکدهایی است که JVM نسخه ۱۷ را هدف قرار میدهند.
با شروع از AGP 8.1.0-alpha04، اندروید لینت (Android Lint) شامل بایتکدهایی است که JVM 17 را هدف قرار میدهند. اگر بررسیهای لینت سفارشی مینویسید، باید با JDK 17 یا بالاتر کامپایل کنید و jvmTarget = '17' را در گزینههای کامپایلر کاتلین خود مشخص کنید.
با شروع از AGP 8.1.0-alpha10، اگر فشردهسازی کتابخانه بومی را با استفاده از DSL به جای مانیفست پیکربندی نکنید، هشداری دریافت خواهید کرد. راهنمای زیر نحوه بهروزرسانی پیکربندی شما برای استفاده از DSL را توضیح میدهد. برای دریافت کمک در انجام این بهروزرسانیها، از دستیار ارتقاء AGP ( ابزارها > دستیار ارتقاء AGP ) استفاده کنید.
برای استفاده از کتابخانههای بومی فشرده نشده، ویژگی android::extractNativeLibs از مانیفست حذف کنید و کد زیر را به فایل build.gradle.kts در سطح ماژول (فایل build.gradle اگر از Groovy استفاده میکنید) اضافه کنید:
فعال کردن این گزینه بدون مشخص کردن پیکربندیهای امضایی باعث میشود AGP هنگام اجرای یک ساختار قابل پروفایل یا قابل اشکالزدایی، از پیکربندی امضای اشکالزدایی پیشفرض استفاده کند. این پرچم به طور پیشفرض غیرفعال است تا نویسندگان ساختار را به اعلام پیکربندیهای امضای پروفایل خاص تشویق کند.
android.experimental.library.desugarAndroidTest
ای جی پی ۸.۰
false
این پرچم به سازندگان کتابخانه اجازه میدهد تا desugaring کتابخانه اصلی را برای APKهای آزمایشی فعال کنند، بدون اینکه روی AAR تولید شده تأثیری بگذارد، مثلاً از طریق linting. ما قصد داریم در نهایت از این رفتار در API نوع Variant پشتیبانی کنیم.
در صورت فعال بودن، Gradle Managed Devices امکان تعریف نوع دستگاه سفارشی توسط کاربر را فراهم میکند که میتواند توسط یک افزونه ارائه شود. اگر میخواهید از افزونه Firebase Test Lab استفاده کنید، این پرچم باید فعال باشد.
android.lint.printStackTrace
ای جی پی ۸.۰
false
در صورت فعال بودن، lint اندروید در صورت خرابی، stacktrace را چاپ میکند. این پرچم همان قابلیتهای متغیر محیطی LINT_PRINT_STACKTRACE را دارد.
حداکثر تعداد دستگاههای مدیریتشدهی Gradle (AVD) همزمان را که میتوانند در هر نقطه از زمان فعال باشند، مشخص میکند. اگر مقدار آن 0 یا منفی باشد، حداکثر تعداد دستگاهها مشخص نیست.
[AGP 8.1.0] اگر هر دو splits.abi.isEnable و testOptions.unitTests.isIncludeAndroidResources درست باشند، تست ./gradlew با پیام "Unable to find manifest output" با شکست مواجه میشود.
[AGP 8.1.0] اگر هر دو splits.abi.isEnable و testOptions.unitTests.isIncludeAndroidResources درست باشند، تست ./gradlew با پیام "Unable to find manifest output" با شکست مواجه میشود.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-11-13 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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-11-13 بهوقت ساعت هماهنگ جهانی."],[],[]]