لمزيد من المعلومات، يُرجى الاطّلاع على ضبط إصدار JDK.
استخدام لغة Kotlin DSL تلقائيًا لإعدادات التصميم
تستخدم المشاريع الجديدة الآن لغة Kotlin DSL (build.gradle.kts) تلقائيًا لإعدادات الإصدار. يوفّر ذلك تجربة تعديل أفضل من Groovy DSL
(build.gradle) مع تمييز بناء الجملة وإكمال الرمز البرمجي والتنقّل إلى
تعريفات. يُرجى العِلم أنّه في حال استخدام الإصدار 8.1 من "مكوّن Android الإضافي في Gradle" ولغة Kotlin DSL لإعدادات الإصدار، عليك استخدام الإصدار 8.1 من Gradle للحصول على أفضل تجربة. لمزيد من المعلومات، راجِع دليل نقل البيانات إلى Kotlin DSL.
التوافق التلقائي مع اللغة المحدّدة لكل تطبيق
بدءًا من الإصدار التجريبي 7 من Android Studio Giraffe والإصدار 8.1.0-alpha07 من "مكوّن Android الإضافي في Gradle"، يمكنك ضبط تطبيقك تلقائيًا ليتوافق مع إعدادات اللغة المخصصة حسب التطبيقات. استنادًا إلى موارد مشروعك، ينشئ المكوّن الإضافي لنظام Gradle المتوافق مع Android الملف LocaleConfig ويضيف إليه مرجعًا في ملف البيان النهائي، وبالتالي لن تحتاج إلى إجراء ذلك يدويًا. يستخدم المكوّن الإضافي لنظام Gradle في Android الموارد الموجودة في مجلدات res الخاصة بوحدات تطبيقك وأي عناصر اعتمادية لوحدة المكتبة لتحديد اللغات المحلية التي سيتم تضمينها في ملف LocaleConfig.
يُرجى العِلم أنّ ميزة "اللغة التلقائية لكل تطبيق" تتوافق مع التطبيقات التي تعمل بالإصدار 13 من نظام التشغيل Android (المستوى 33 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث. لاستخدام الميزة، يجب ضبط قيمة
compileSdkVersion على 33 أو أعلى. لضبط إعدادات اللغة المخصصة حسب التطبيقات على الإصدارات السابقة من Android، عليك استخدام واجهات برمجة التطبيقات وأدوات اختيار اللغة داخل التطبيق.
لتفعيل ميزة دعم اللغة التلقائي لكل تطبيق، حدِّد لغة تلقائية:
في مجلد 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):
يتضمّن Android Lint رمزًا بايت يستهدف الإصدار 17 من JVM
بدءًا من الإصدار 8.1.0-alpha04 من "مكوّن Android Lint"، يتضمّن هذا المكوّن رمزًا بايت يستهدف الإصدار 17 من جهاز JVM. إذا كنت تكتب عمليات فحص مخصّصة باستخدام أداة Lint، عليك إجراء عملية تجميع باستخدام الإصدار 17 من JDK أو إصدار أحدث
وتحديد jvmTarget = '17' في خيارات برنامج الترجمة البرمجية في Kotlin.
تم نقل إعداد ضغط المكتبة المجمّعة من رموز برمجية أصلية إلى DSL
اعتبارًا من الإصدار 8.1.0-alpha10 من "مكوّن Android الإضافي لبرنامج Gradle"، ستتلقّى تحذيرًا إذا لم تضبط إعدادات ضغط المكتبة المجمّعة من رموز برمجية أصلية باستخدام لغة DSL بدلاً من ملف البيان. توضّح الإرشادات التالية كيفية تعديل الإعدادات لاستخدام لغة DSL. للحصول على مساعدة في إجراء هذه التحديثات، استخدِم "مساعد ترقية" Android Gradle Plugin
(أدوات > مساعد ترقية Android Gradle Plugin).
لاستخدام المكتبات الأصلية غير المضغوطة، عليك إزالة السمة android::extractNativeLibs من ملف البيان وإضافة الرمز التالي إلى ملف build.gradle.kts على مستوى الوحدة (ملف build.gradle إذا كنت تستخدم Groovy):
يؤدي تفعيل هذا الخيار بدون تحديد أي إعدادات توقيع إلى استخدام AGP لإعداد التوقيع التلقائي للتصحيح عند تشغيل إصدار قابل للتصحيح أو إنشاء ملف شخصي له. يتم إيقاف هذه العلامة تلقائيًا لتشجيع مطوّري الإصدارات على تحديد إعدادات توقيع خاصة بالتوصيف.
android.experimental.library.desugarAndroidTest
AGP 8.0
false
تسمح هذه العلامة لمطوّري المكتبات بتفعيل إزالة التجميل اللغوي من المكتبة الأساسية لحِزم APK التجريبية بدون التأثير في ملف AAR الناتج، مثلاً من خلال التحليل باستخدام أداة Lint.
نخطّط لإتاحة هذا السلوك في واجهة برمجة التطبيقات الخاصة بالأسعار المتغيرة.
في حال تفعيلها، تسمح ميزة "الأجهزة المُدارة من Gradle" باستخدام نوع جهاز مخصّص يحدّده المستخدم ويمكن توفيره من خلال إضافة. يجب تفعيل هذا الخيار إذا كنت تريد استخدام المكوّن الإضافي "مختبر Firebase الافتراضي".
android.lint.printStackTrace
AGP 8.0
false
في حال تفعيلها، تطبع أداة Android lint تتبُّع تسلسل استدعاء الدوال البرمجية في حال حدوث عُطل. تتضمّن هذه العلامة الإمكانات نفسها التي يتضمّنها متغيّر البيئة LINT_PRINT_STACKTRACE.
تحدّد هذه السمة الحد الأقصى لعدد أجهزة Gradle المُدارة المتزامنة (محاكيات Android) التي يمكن أن تكون نشطة في أي وقت. إذا كانت القيمة 0 أو سالبة، لن يكون هناك حد أقصى لعدد الأجهزة.
[الإصدار 8.1.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android] يتعذّر تنفيذ ./gradlew test ويظهر الخطأ "Unable to find manifest output" إذا كانت قيمة كلّ من splits.abi.isEnable وtestOptions.unitTests.isIncludeAndroidResources هي true
[الإصدار 8.1.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android] يتعذّر تنفيذ ./gradlew test ويظهر الخطأ "Unable to find manifest output" إذا كانت قيمة كلّ من splits.abi.isEnable وtestOptions.unitTests.isIncludeAndroidResources هي true
تعذّر تنفيذ R8 بسبب ظهور الخطأ "Undefined value encountered during compilation" (تمت مصادفة قيمة غير محدّدة أثناء التجميع) في play-services-measurement-21.3.0-runtime.jar
الإصدار 8.1.1 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
تستخدم الدالة generateLocaleConfig في الإصدار 8.1.0 من "مكوّن Android الإضافي في Gradle" ترتيبًا غير حتمي، ما يؤدي إلى إيقاف عمليات الإنشاء القابلة للتكرار
تعطُّل التطبيق مع ظهور خطأ في التحقّق على الإصدار 12 من نظام التشغيل Android والإصدارات الأحدث
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2026-05-06 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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"]],["تاريخ التعديل الأخير: 2026-05-06 (حسب التوقيت العالمي المتفَّق عليه)"],[],[]]