الإصدار 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. |
إصدارات رموز التصحيح
في ما يلي قائمة بإصدارات رموز التصحيح للإصدار 8.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android.
الإصدار 8.0.2 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (مايو 2023)
للاطّلاع على قائمة بالأخطاء التي تم إصلاحها في الإصدار 8.0.2 من المكوّن الإضافي لنظام Gradle المتوافق مع Android، راجِع المشاكل التي تم إغلاقها في الإصدار 2022.2.1 من "استوديو Android".
الإصدار 8.0.1 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (مايو 2023)
يتضمّن هذا التحديث البسيط إصلاحات الأخطاء التالية:
| المشاكل التي تم إصلاحها | |
|---|---|
|
Error: "No VersionRequirement with the given id in the table" after upgrading AGP 7.2.2 -> 7.4.0
|
|
|
R8 NullPointerException at markTypeAsLive AGP 7.4.1
|
|
|
[R8 4.0.53] تعذُّر التحقّق من الفئة الصعبة على Android 11
|
|
تغيير غير متوافق: يجب توفير مساحة الاسم في نص برمجة التصميم على مستوى الوحدة
يجب ضبط مساحة الاسم في ملف build.gradle.kts على مستوى الوحدة، وليس في ملف البيان. يمكنك بدء استخدام السمة namespace DSL
بدءًا من الإصدار 7.3 من "استوديو Android". لمزيد من المعلومات، يُرجى الاطّلاع على
ضبط مساحة اسم.
عند نقل البيانات إلى لغة DSL الخاصة بـ "مساحة الاسم"، يُرجى الانتباه إلى المشاكل التالية:
- تستنتج الإصدارات السابقة من "مكوّن Android الإضافي في Gradle" مساحة الاسم التجريبية من مساحة الاسم الرئيسية أو معرّف التطبيق بشكل غير صحيح في بعض الحالات. يمنع "مساعد ترقية AGP" الترقية إذا تبيّن له أنّ مساحة الاسم الرئيسية ومساحة اسم الاختبار في مشروعك متطابقتان. إذا تم حظر الترقية، عليك تغيير
testNamespaceيدويًا وتعديل رمز المصدر وفقًا لذلك. - بعد تغيير مساحة الاسم الخاصة بالاختبار، من المحتمل أن يتم تجميع الرمز البرمجي، ولكن ستتعذّر الاختبارات المزوّدة بأدوات في وقت التشغيل. يمكن أن يحدث ذلك إذا كان رمز المصدر للاختبار المزوّد بأدوات يتضمّن مرجعًا إلى مورد محدّد في كل من مصادر
androidTestومصادر التطبيق.
لمزيد من المعلومات، يُرجى الاطّلاع على المشكلة رقم 191813691، التعليق رقم 19.
تغييرات غير متوافقة: القيم التلقائية لخيارات الإنشاء
بدءًا من الإصدار 8.0 من "مكوّن Android الإضافي في Gradle"، تم تغيير القيم التلقائية لهذه العلامات لتحسين أداء عملية الإنشاء. للحصول على المساعدة في تعديل الرمز البرمجي ليتوافق مع بعض هذه التغييرات، استخدِم "أداة ترقية المكوّن الإضافي لنظام Android Gradle" (الأدوات > أداة ترقية المكوّن الإضافي لنظام Android Gradle). يرشدك "مساعد الترقية" خلال عملية تعديل الرمز البرمجي لاستيعاب السلوك الجديد أو ضبط العلامات للحفاظ على السلوك السابق.
| إبلاغ | القيمة التلقائية الجديدة | القيمة التلقائية السابقة | الملاحظات |
|---|---|---|---|
android.defaults.buildfeatures.buildconfig |
false |
true |
لا ينشئ الإصدار 8.0 من "مكوّن Android الإضافي في Gradle" 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 من "مكوّن Android الإضافي في Gradle" ميزة 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 من "مكوّن Android الإضافي لبرنامج Gradle"، لن تتمكّن بعد الآن من تغيير قيم هذه العلامات. إذا حدّدتها في ملف gradle.properties، سيتم تجاهل القيمة وستعرض AGP تحذيرات.
| إبلاغ | القيمة المفروضة | الملاحظات |
|---|---|---|
android.dependencyResolutionAtConfigurationTime.warn |
true |
يُصدر الإصدار 8.0 من AGP تحذيرًا إذا رصد عملية تحديد إعدادات أثناء مرحلة الإعدادات، لأنّ ذلك يؤثّر سلبًا في أوقات إعداد Gradle. |
android.r8.failOnMissingClasses |
true |
يفشل الإصدار 8.0 من "مكوّن Android الإضافي في Gradle" في إنشاء التطبيقات التي تستخدم R8 إذا كانت هناك فئات غير متوفّرة، وذلك لضمان تحسين DEX بشكل أفضل. لحلّ هذه المشكلة، عليك إضافة المكتبات الناقصة أو -dontwarn قواعد الاحتفاظ. لمزيد من التفاصيل، يُرجى الاطّلاع على
تحذيرات بشأن الفئات غير المتوفّرة في أداة التصغير R8. |
android.testConfig.useRelativePath |
true |
عند تفعيل إمكانية استخدام موارد Android ومواد العرض وبيانات البيان في اختبارات الوحدات، ينشئ الإصدار 8.0 من "مكوّن Android الإضافي في Gradle" ملف test_config.properties يحتوي على مسارات نسبية فقط. يضمن ذلك أنّه يمكن لاختبارات الوحدة في Android استخدام ذاكرة التخزين المؤقت لإنشاء Gradle دائمًا. |
android.useNewJarCreator |
true |
يستخدم AGP مكتبة Zipflinger عند إنشاء ملفات JAR لتحسين أداء عملية الإنشاء. |
android.bundletool.includeRepositoriesInDependencyReport |
true |
عند تفعيل إضافة معلومات العناصر الاعتمادية لحزمة تطوير البرامج (SDK) في حِزم AAB وملفات APK، يضيف الإصدار 8.0 من Android Gradle Plugin أيضًا قائمة بمستودعات المشاريع إلى هذه المعلومات. لمزيد من المعلومات، يُرجى الاطّلاع على معلومات التبعية في Play Console. |
android.enableArtProfiles |
true |
يتم الآن إنشاء ملفات تعريف الأداء الأساسية دائمًا. لمزيد من التفاصيل، راجِع ملفات Baseline. |
android.enableNewResourceShrinker |
true |
استخدام آلية تنفيذ أداة تصغير حجم الموارد الجديدة تلقائيًا تتضمّن أداة تصغير الموارد الجديدة إمكانية استخدام الميزات الديناميكية. |
android.enableSourceSetPathsMap |
true |
تُستخدَم لحساب عمليات ربط مسارات الموارد النسبية، وبالتالي تكون عمليات إنشاء Gradle أكثر حداثة. |
android.cacheCompileLibResources |
true |
يمكن الآن تخزين موارد المكتبة المجمَّعة مؤقتًا تلقائيًا لأنّ Gradle يتتبّع ملفات الموارد بالنسبة إلى موقع المشروع. يجب تفعيل تطبيق "android.enableSourceSetPathsMap". |
android.disableAutomaticComponentCreation |
true |
لا ينشئ الإصدار 8.0 من "مكوّن Android الإضافي في Gradle" أي SoftwareComponent تلقائيًا. بدلاً من ذلك، تنشئ "مكوّنات Android Gradle" (AGP) مكوّنات SoftwareComponent فقط للصيغ التي تم ضبطها ليتم نشرها باستخدام لغة DSL الخاصة بالنشر. |
علامة ثابتة جديدة لملف التنفيذ
يتضمّن AGP العلامة الجديدة android.settings.executionProfile. استخدِم هذه العلامة لتجاوز ملف التنفيذ التلقائي من SettingsExtension.
لمزيد من المعلومات، يُرجى الاطّلاع على مستندات إضافة الإعدادات.
لمعاينة العلامات التجريبية، اطّلِع على ملاحظات إصدار المعاينة.
لا يمكن تعيين قيمة لسمة Kotlin الكسولة
إذا كنت تستخدم Kotlin DSL من Gradle لبرامج الإصدار، يُرجى العِلم أنّ "استوديو Android" والإصدار 8.0 من AGP لا يتيحان تعيين الخصائص التجريبية باستخدام عامل التشغيل =. لمزيد من المعلومات حول هذه الميزة، يُرجى الاطّلاع على
ملاحظات الإصدار
و
المستندات.
فئات مهام "أداة تحليل الإصدار"
بدءًا من Android Studio Flamingo، تتضمّن "أداة تحليل عمليات الإنشاء" عرضًا تلقائيًا جديدًا للمهام التي تؤثّر في مدة الإنشاء. إذا كان مشروعك يستخدم الإصدار 8.0 أو إصدارًا أحدث من AGP، سيصنّف "أداة تحليل الإصدار" المهام حسب الفئة بدلاً من عرضها بشكل فردي. على سبيل المثال، يتم تجميع المهام الخاصة بموارد 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
يجب استخدام الإصدار 17 من حزمة تطوير البرامج (JDK) لتشغيل الإصدار 8.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android"
عند استخدام الإصدار 8.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android لإنشاء تطبيقك، يجب الآن استخدام الإصدار 17 من JDK لتشغيل Gradle. يضم الإصدار Android Studio Flamingo حزمة تطوير البرامج Java 17، ويتم ضبط Gradle لاستخدامها تلقائيًا، ما يعني أنّه لن يحتاج معظم مستخدمي "استوديو Android" إلى إجراء أي تغييرات في إعدادات مشاريعهم.
إذا كنت بحاجة إلى ضبط إصدار JDK يدويًا الذي يستخدمه AGP داخل "استوديو Android"، عليك استخدام الإصدار 17 من JDK أو إصدار أحدث.
عند استخدام "المكوّن الإضافي لنظام Gradle المتوافق مع Android" بشكل مستقل عن "استوديو Android"، عليك ترقية إصدار JDK من خلال ضبط JAVA_HOME
متغيّر البيئة
أو -Dorg.gradle.java.home
خيار سطر الأوامر
على دليل تثبيت JDK 17.
المشاكل التي تم إصلاحها
الإصدار 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) |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||