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