الإصدار 8.0.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android هو إصدار رئيسي يتضمّن مجموعة متنوّعة من الميزات والتحسينات الجديدة.
التوافق
| الإصدار الأدنى | الإصدار التلقائي | ملاحظات | |
|---|---|---|---|
| Gradle | من نظام التشغيل Android | من نظام التشغيل Android | لمزيد من المعلومات، اطّلِع على تحديث Gradle. |
| أدوات تصميم حزمة تطوير البرامج (SDK) | 30.0.3 | 30.0.3 | تثبيت أو ضبط أدوات إنشاء حزمة تطوير البرامج (SDK). |
| NDK | لا ينطبق | 25.1.8937393 | ثبِّت أو اضبط إصدارًا مختلفًا من NDK. |
| JDK | 17 | 17 | لمزيد من المعلومات، يُرجى الاطّلاع على مقالة ضبط إصدار JDK. |
الإصدارات التصحيحية
في ما يلي قائمة بإصدارات رموز التصحيح للمكوّن الإضافي لنظام Gradle المتوافق مع Android 8.0.
الإصدار 8.0.2 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (مايو 2023)
للاطّلاع على قائمة بالأخطاء التي تم إصلاحها في الإصدار 8.0.2 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android"، يُرجى مراجعة المشاكل التي تم حلّها في الإصدار 2022.2.1 من "استوديو Android".
الإصدار 8.0.1 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (مايو 2023)
يتضمّن هذا التحديث البسيط إصلاحات الأخطاء التالية:
| المشاكل التي تم إصلاحها | |
|---|---|
|
الخطأ: "لا يتوفّر VersionRequirement بالرقم التعريفي المحدّد في الجدول" بعد ترقية الإصدار 7.2.2 من المكوّن الإضافي لنظام Gradle المتوافق مع Android إلى الإصدار 7.4.0
|
|
|
R8 NullPointerException at markTypeAsLive AGP 7.4.1
|
|
|
[R8 4.0.53] تعذُّر التحقّق من الفئة الثابتة على Android 11
|
|
تغيير قد يؤدي إلى عطل: يجب توفُّر مساحة الاسم في نص التصميم البرمجي على مستوى الوحدة
يجب ضبط مساحة الاسم في ملف build.gradle.kts على مستوى الوحدة، وليس في ملف البيان. يمكنك بدء استخدام السمة namespace DSL
بدءًا من الإصدار 7.3 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android". لمزيد من المعلومات، يُرجى الاطّلاع على ضبط مساحة اسم.
عند نقل البيانات إلى مساحة الاسم DSL، يُرجى الانتباه إلى المشاكل التالية:
- تستنتج الإصدارات السابقة من AGP مساحة الاسم الاختبارية من مساحة الاسم الرئيسية أو رقم تعريف التطبيق بشكل غير صحيح في بعض الحالات. يحظر "مساعد ترقية" Android Gradle Plugin الترقية إذا وجد أنّ مساحة الاسم الرئيسية ومساحة اسم الاختبار في مشروعك متطابقتان. إذا تم حظر الترقية، عليك تغيير
testNamespaceيدويًا وتعديل الرمز المصدر وفقًا لذلك. - بعد تغيير مساحة الاسم الخاصة بالاختبار، من الممكن أن يتم تجميع الرمز البرمجي ولكن يتعذّر إجراء اختبارات لقياس حالة التطبيق في وقت التشغيل. يمكن أن يحدث ذلك إذا كان الرمز المصدر لاختبار قياس حالة التطبيق يشير إلى مورد محدّد في كل من مصادر تطبيقك و
androidTest.
لمزيد من المعلومات، يُرجى الاطّلاع على المشكلة رقم 191813691 التعليق رقم 19.
تغييرات قد تؤدي إلى أعطال: القيم التلقائية لخيارات الإصدار
بدءًا من الإصدار 8.0 من "مكوّن Android الإضافي في Gradle"، تم تغيير القيم التلقائية لهذه العلامات لتحسين أداء عملية الإنشاء. للحصول على مساعدة في تعديل الرمز ليتوافق مع بعض هذه التغييرات، استخدِم "مساعد ترقية" Android Gradle Plugin (الأدوات > مساعد ترقية Android Gradle Plugin). يساعدك "مساعد الترقية" في تعديل الرمز البرمجي ليتوافق مع السلوك الجديد أو ضبط العلامات للحفاظ على السلوك السابق.
| علم | القيمة التلقائية الجديدة | القيمة التلقائية السابقة | ملاحظات |
|---|---|---|---|
android.defaults.buildfeatures.buildconfig |
false |
true |
لا ينشئ الإصدار 8.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" السمة BuildConfig تلقائيًا. عليك تحديد هذا الخيار باستخدام DSL في المشاريع التي تحتاج إليها. |
android.defaults.buildfeatures.aidl |
false |
true |
لا يتيح الإصدار 8.0 من "مكوّن Android الإضافي في Gradle" استخدام AIDL تلقائيًا. وعليك تحديد هذا الخيار باستخدام DSL في المشاريع التي تحتاج إليها. ومن المخطط إزالة هذه العلامة في الإصدار 9.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android. |
android.defaults.buildfeatures.renderscript |
false |
true |
لا يتيح الإصدار 8.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" استخدام RenderScript تلقائيًا. وعليك تحديد هذا الخيار باستخدام DSL في المشاريع التي تحتاج إليها. ومن المخطط إزالة هذه العلامة في الإصدار 9.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android. |
android.nonFinalResIds |
true |
false |
ينشئ الإصدار 8.0 من "مكوّن Android الإضافي في Gradle" فئات R بحقول غير نهائية بشكل تلقائي. |
android.nonTransitiveRClass |
true |
false |
ينشئ الإصدار 8.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android فئات R للموارد المحدّدة في الوحدة الحالية فقط. |
android.enableR8.fullMode |
true |
false |
يُفعِّل الإصدار 8.0 من "مكوّن Android الإضافي في Gradle" الوضع الكامل لأداة R8 تلقائيًا. لمزيد من التفاصيل، يُرجى الاطّلاع على الوضع الكامل لأداة R8. |
تغييرات قد تؤدي إلى أعطال: قيم خيارات الإصدارات المفروضة
بدءًا من الإصدار 8.0 من AGP، لن يعود بإمكانك تغيير قيم هذه العلامات. إذا
حدّدتها في ملف gradle.properties، سيتم تجاهل القيمة وسيطبع
AGP تحذيرات.
| علم | القيمة المفروضة | ملاحظات |
|---|---|---|
android.dependencyResolutionAtConfigurationTime.warn |
true |
يُصدر الإصدار 8.0 من "مكوّن Android الإضافي في Gradle" تحذيرًا إذا رصد دقة الإعدادات أثناء مرحلة الإعدادات لأنّ ذلك يؤثر سلبًا في أوقات إعدادات Gradle. |
android.r8.failOnMissingClasses |
true |
لا ينجح الإصدار 8.0 من "مكوّن Android الإضافي في Gradle" في إنشاء الإصدارات التي تستخدم R8 في حال عدم توفّر فئات لضمان تحسين DEX بشكل أفضل. لحلّ هذه المشكلة، عليك إضافة المكتبات المفقودة أو قواعد الاحتفاظ -dontwarn. لمزيد من التفاصيل، يُرجى الاطّلاع على تحذيرات بشأن الفئات المفقودة في أداة تقليص حجم الرموز R8. |
android.testConfig.useRelativePath |
true |
عند تفعيل استخدام موارد Android ومواد العرض وملفات البيان في اختبارات الوحدات، ينشئ الإصدار 8.0 من "مكوّن Gradle الإضافي لنظام التشغيل Android" ملف test_config.properties يحتوي على مسارات نسبية فقط. يضمن ذلك أن تتمكّن اختبارات وحدة Android دائمًا من استخدام ذاكرة التخزين المؤقت لتصميم Gradle. |
android.useNewJarCreator |
true |
يستخدم المكوّن الإضافي لنظام Gradle المتوافق مع Android مكتبة Zipflinger عند إنشاء ملفات JAR لتحسين أداء عملية الإنشاء. |
android.bundletool.includeRepositoriesInDependencyReport |
true |
عند تفعيل ميزة إضافة معلومات تبعية حِزم SDK في ملفات AAB وAPK، يضيف الإصدار 8.0 من AGP أيضًا قائمة بمستودعات المشاريع إلى هذه المعلومات. لمزيد من المعلومات، يُرجى الاطّلاع على معلومات التبعية في Play Console. |
android.enableArtProfiles |
true |
يتم الآن إنشاء ملفات Baseline دائمًا. لمزيد من التفاصيل، يُرجى الاطّلاع على الملفات الشخصية الأساسية. |
android.enableNewResourceShrinker |
true |
استخدام عملية تنفيذ أداة تقليص الموارد الجديدة تلقائيًا تتيح أداة تصغير الموارد الجديدة الميزات الديناميكية. |
android.enableSourceSetPathsMap |
true |
يُستخدَم لاحتساب عمليات ربط مسارات الموارد النسبية، وبالتالي تكون إصدارات Gradle محدَّثة بشكل أكبر. |
android.cacheCompileLibResources |
true |
يمكن الآن تخزين موارد المكتبة المجمّعة مؤقتًا بشكل تلقائي لأنّ Gradle يتتبّع ملفات الموارد ذات الصلة بموقع المشروع. تتطلّب هذه الميزة تفعيل android.enableSourceSetPathsMap. |
android.disableAutomaticComponentCreation |
true |
لا ينشئ الإصدار 8.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" أي SoftwareComponent تلقائيًا. بدلاً من ذلك، تنشئ "مكوّنات Android Gradle" (AGP) مكوّنات SoftwareComponents فقط للصيغ التي تم ضبطها ليتم نشرها باستخدام لغة DSL للنشر. |
علامة ثابتة جديدة لملف التنفيذ
يتضمّن مكوّن Android Gradle الإضافي العلامة الجديدة android.settings.executionProfile. استخدِم هذه العلامة لتجاوز ملف الإعدادات التلقائي للتنفيذ من SettingsExtension. لمزيد من المعلومات، يُرجى الاطّلاع على مستندات المكوّن الإضافي للإعدادات.
لمعاينة العلامات التجريبية، يُرجى الاطّلاع على ملاحظات الإصدار المبكر الحصري.
لا يمكن استخدام ميزة Kotlin lazy property assignment
إذا كنت تستخدم لغة Kotlin DSL في Gradle لإنشاء نصوص الإصدار، يُرجى العِلم أنّ "استوديو Android" والإصدار 8.0 من "مكوّن Android الإضافي لبرنامج Gradle" لا يتيحان تخصيص السمات التجريبية باستخدام عامل التشغيل =. لمزيد من المعلومات حول هذه الميزة، يُرجى الاطّلاع على
ملاحظات الإصدار والمستندات.
فئات مهام "أداة تحليل الإصدار"
بدءًا من الإصدار Flamingo من استوديو Android، تتوفّر في "أداة تحليل الإصدار" طريقة عرض تلقائية جديدة للمهام التي تؤثّر في مدة الإصدار. إذا كان مشروعك يستخدم الإصدار 8.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" أو إصدارًا أحدث، ستجمع "أداة تحليل الإصدار" المهام حسب الفئة بدلاً من عرضها بشكل فردي. على سبيل المثال، يتم تجميع المهام الخاصة بموارد Android أو Kotlin أو Dexing معًا ثم ترتيبها حسب مدة الإصدار. يساعدك ذلك في تحديد الفئة التي لها أكبر تأثير في وقت الإنشاء. يؤدي توسيع كل فئة إلى عرض قائمة بالمهام المقابلة. لعرض المهام بشكل فردي بدون تجميعها، استخدِم القائمة المنسدلة التجميع حسب.

مكوّن إضافي جديد للإعدادات
يقدّم الإصدار 8.0.0-alpha09 من المكوّن الإضافي لنظام Gradle المتوافق مع Android المكوّن الإضافي الجديد للإعدادات. يتيح لك المكوّن الإضافي للإعدادات تجميع الإعدادات العامة التي تنطبق على جميع الوحدات في مكان واحد، ما يغنيك عن نسخ الإعدادات ولصقها في وحدات متعددة. بالإضافة إلى ذلك، يمكنك استخدام المكوّن الإضافي للإعدادات لإنشاء ملفات تعريف تنفيذ الأدوات، أو تعليمات مختلفة حول كيفية تشغيل أداة، والتبديل بينها.
لاستخدام المكوّن الإضافي للإعدادات، طبِّق المكوّن الإضافي في ملف settings.gradle:
apply plugin 'com.android.settings'
مركزية الإعدادات العامة
لضبط الإعدادات العامة، استخدِم مجموعة android الجديدة في ملف settings.gradle. وفي ما يلي مثال لذلك:
android {
compileSdk 31
minSdk 28
...
}
ملفات تعريف تنفيذ الأدوات
يتيح لك المكوّن الإضافي للإعدادات أيضًا إنشاء ملفات شخصية للتنفيذ لبعض الأدوات. يحدّد ملف التنفيذ كيفية تشغيل الأداة، ويمكنك اختيار ملفات تنفيذ مختلفة حسب البيئة. في ملف التنفيذ، يمكنك ضبط وسيطات JVM لأداة وضبطها لتعمل في عملية منفصلة. تتوفّر أداة R8 فقط.
أنشئ ملفات شخصية للتنفيذ واضبط الملف الشخصي التلقائي للتنفيذ في ملف
settings.gradle، كما هو موضّح في المثال التالي:
android {
execution {
profiles {
high {
r8 {
jvmOptions += ["-Xms2048m", "-Xmx8192m", "-XX:+HeapDumpOnOutOfMemoryError"]
runInSeparateProcess true
}
}
low {
r8 {
jvmOptions += ["-Xms256m", "-Xmx2048m", "-XX:+HeapDumpOnOutOfMemoryError"]
runInSeparateProcess true
}
}
ci {
r8.runInSeparateProcess false
}
}
defaultProfile "low"
}
}
لتجاوز الملف الشخصي التلقائي، اختَر ملفًا شخصيًا مختلفًا باستخدام السمة android.experimental.settings.executionProfile في ملف gradle.properties:
android.experimental.settings.executionProfile=high
يمكنك أيضًا ضبط هذه السمة باستخدام سطر الأوامر، ما يتيح لك إعداد
سير عمل مختلف. على سبيل المثال، إذا كان لديك سير عمل تكامل مستمر،
يمكنك استخدام سطر الأوامر لتغيير ملف تعريف التنفيذ بدون الحاجة إلى
تغيير ملف settings.gradle:
./gradlew assembleRelease \
-Pandroid.experimental.settings.executionProfile=ci
مجموعة تطوير Java (JDK) الإصدار 17 مطلوبة لتشغيل الإصدار 8.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
عند استخدام الإصدار 8.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android لإنشاء تطبيقك، أصبح الإصدار 17 من حزمة تطوير البرامج (JDK) مطلوبًا الآن لتشغيل Gradle. يتضمّن إصدار Android Studio Flamingo حزمة JDK 17 ويضبط Gradle لاستخدامها تلقائيًا، ما يعني أنّ معظم مستخدمي "استوديو Android" لا يحتاجون إلى إجراء أي تغييرات في إعدادات مشاريعهم.
إذا كنت بحاجة إلى ضبط إصدار حزمة تطوير Java يدويًا الذي يستخدمه "مكوّن Android الإضافي لبرنامج Gradle" داخل "استوديو Android"، عليك استخدام الإصدار 17 من حزمة تطوير Java أو إصدار أحدث.
عند استخدام AGP بشكل مستقل عن "استوديو Android"، يمكنك ترقية إصدار حزمة تطوير البرامج (JDK) من خلال ضبط JAVA_HOME متغيّر البيئة أو -Dorg.gradle.java.home خيار سطر الأوامر على دليل تثبيت الإصدار 17 من حزمة تطوير البرامج (JDK).
المشاكل التي تم إصلاحها
الإصدار 8.0.2 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
| المشاكل التي تم حلّها | |||||
|---|---|---|---|---|---|
| Shrinker (R8) |
|
||||
الإصدار 8.0.1 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
| المشاكل التي تم حلّها | ||||
|---|---|---|---|---|
| Shrinker (R8) |
|
|||
الإصدار 8.0.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
| المشاكل التي تم حلّها | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| مكوّن إضافي لنظام Gradle المتوافق مع Android |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Dexer (D8) |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Lint |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| دمج Lint |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Shrinker (R8) |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||