پروژه های جدید اکنون از Kotlin DSL ( build.gradle.kts ) به طور پیش فرض برای پیکربندی ساخت استفاده می کنند. این تجربه ویرایش بهتری نسبت به Groovy DSL ( build.gradle ) با برجستهسازی نحو، تکمیل کد و پیمایش به اعلانها ارائه میدهد. توجه داشته باشید که اگر از AGP 8.1 و Kotlin DSL برای پیکربندی ساخت استفاده می کنید، باید از Gradle 8.1 برای بهترین تجربه استفاده کنید. برای کسب اطلاعات بیشتر، به راهنمای مهاجرت DSL Kotlin مراجعه کنید.
پشتیبانی خودکار زبان برای هر برنامه
با شروع 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 تنظیم کنید. برای تشکیل نام محلی، کد زبان را با اسکریپت اختیاری و کدهای منطقه ترکیب کنید و هر کدام را با یک خط تیره جدا کنید:
به عنوان مثال اگر زبان پیش فرض شما انگلیسی آمریکایی است:
unqualifiedResLocale=en-US
AGP این محلی پیشفرض و هر منطقه جایگزینی را که مشخص کردهاید، با استفاده از فهرستهای values-* در پوشه res ، به فایل LocaleConfig که بهطور خودکار تولید میشود، اضافه میکند.
پشتیبانی خودکار زبان برای هر برنامه به طور پیش فرض خاموش است. برای روشن کردن این ویژگی، از تنظیمات generateLocaleConfig در بلوک androidResources {} فایل build.gradle.kts در سطح ماژول استفاده کنید (اگر از Groovy استفاده میکنید فایل build.gradle ):
Android Lint حاوی بایت کدی است که JVM 17 را هدف قرار می دهد
با شروع با 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 سطح ماژول اضافه کنید (اگر از Groovy استفاده می کنید فایل build.gradle ):
فعال کردن این مورد بدون تنظیمات امضای مشخص شده باعث میشود AGP از پیکربندی امضای اشکالزدایی پیشفرض هنگام اجرای یک ساخت نمایهپذیر یا اشکالزدایی استفاده کند. این پرچم به طور پیشفرض غیرفعال است تا نویسندگان ساخت را تشویق کند تا پیکربندیهای امضای پروفایل مشخصی را اعلام کنند.
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 در صورت خرابی یک stacktrace چاپ می کند. این پرچم دارای همان قابلیت های متغیر محیطی LINT_PRINT_STACKTRACE است.
حداکثر تعداد دستگاههای مدیریتشده Gradle (AVD) را برای فعال بودن در هر نقطه از زمان مشخص میکند. اگر مقدار 0 یا منفی باشد، حداکثر تعداد دستگاه وجود ندارد.
[AGP 8.1.0] اگر هر دو splits.abi.isEnable و testOptions.unitTests.isIncludeAndroidResources درست باشند، آزمایش ./gradlew با "Unable to find output manifest" ناموفق است.
[AGP 8.1.0] اگر هر دو splits.abi.isEnable و testOptions.unitTests.isIncludeAndroidResources درست باشند، آزمایش ./gradlew با "Unable to find output manifest" ناموفق است.
وقتی زیرپروژهها قبلاً از طریق تبدیل مصنوعات dex'd شدهاند، کار dexing را روی کلاسهای زیر پروژه اجرا نکنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2024-10-30 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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"]],["تاریخ آخرین بهروزرسانی 2024-10-30 بهوقت ساعت هماهنگ جهانی."],[],[]]