الإصدار 8.0.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android هو إصدار رئيسي يتضمّن مجموعة متنوعة من الميزات والميزات والتحسينات.
التوافق
الحد الأدنى للإصدار | الإصدار التلقائي | ملاحظات | |
---|---|---|---|
قاعدة مخروطية | من نظام التشغيل Android | من نظام التشغيل Android | لمعرفة المزيد من المعلومات، يمكنك الاطّلاع على تحديث Gradle. |
أدوات إنشاء حِزم تطوير البرامج (SDK) | 30.0.3 | 30.0.3 | تثبيت أدوات إنشاء حزمة تطوير البرامج (SDK) أو ضبطها |
كرونة دنماركية | لا ينطبق | 25.1.8937393 | تثبيت أو ضبط إصدار مختلف من NDK. |
JDK | 17 | 17 | لمزيد من المعلومات، راجِع إعداد إصدار JDK. |
إصدارات التصحيح
في ما يلي قائمة بإصدارات التصحيح لمكوّن Gradle الإضافي لنظام التشغيل Android 8.0.
الإصدار 8.0.2 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (أيار/مايو 2023)
للحصول على قائمة بالأخطاء التي تم إصلاحها في الإصدار AGP 8.0.2، يمكنك الاطّلاع على المشاكل التي تم حلّها في الإصدار 2022.2.1 من "استوديو Android":
الإصدار 8.0.1 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (أيار/مايو 2023)
يتضمن هذا التحديث البسيط إصلاحات الأخطاء التالية:
المشاكل التي تم إصلاحها | |
---|---|
خطأ: "لا يلزم إصدار مطلوب بالمعرّف المحدّد في الجدول" بعد ترقية AGP 7.2.2 -> 7.4.0
|
|
R8 NullPointerException في 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.
تغييرات قد تؤدي إلى أعطال: القيم التلقائية لخيارات الإنشاء
بدءًا من AGP 8.0، تغيرت القيم التلقائية لهذه العلامات إلى لتحسين أداء الإصدار. للحصول على مساعدة في تعديل التعليمات البرمجية لتتوافق مع بعض هذه التغييرات، يمكنك استخدام مساعد ترقية 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 بإنشاء أي برنامج مكون تلقائيًا. بدلاً من ذلك، ينشئ AGP مكوّنات البرامج فقط لخيارات المنتج التي تم ضبطها ليتم نشرها باستخدام DSL للنشر. |
علامة ثابتة جديدة للملف الشخصي الخاص بالتنفيذ
يشتمل AGP على العلامة الجديدة android.settings.executionProfile
. يمكنك استخدام هذه العلامة من أجل
لإلغاء ملف التنفيذ التلقائي من
SettingsExtension
للمزيد من المعلومات، يمكنك الاطّلاع على مستندات المكوّن الإضافي للإعدادات.
لمعاينة العلامات التجريبية، يمكنك الاطّلاع على ملاحظات إصدار المعاينة.
ميزة تخصيص الخصائص الكسولة في Kotlin غير متاحة.
إذا كنت تستخدم Kotlin DSL من Gradle لإنشاء النصوص البرمجية، يُرجى ملاحظة أنّ نظام Android
لا يدعم كل من Studio وAGP 8.0 تعيين الموقع التجريبي باستخدام
=
. للحصول على مزيد من المعلومات عن هذه الميزة، يمكنك الاطّلاع على
ملاحظات الإصدار
أو
الوثائق.
فئات مهام أداة تحليل الإصدار
بدءًا من Android Studio Flamingo، تمتلك أداة تحليل الإصدار واجهة عرض تلقائية جديدة والمهام التي تؤثر في مدة الإصدار. إذا كان مشروعك يستخدم AGP 8.0 أو إصدارًا أعلى، بدلاً من عرض المهام بشكل فردي، تعمل أداة تحليل الإصدار على تجميعها حسب . على سبيل المثال، المهام الخاصة بموارد 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" لا يحتاجون إلى أي تغييرات في الإعدادات على مشاريعهم.
إذا كنت تريد ضبط إصدار JDK يدويًا يستخدمه AGP داخل "استوديو Android"، يجب استخدام الإصدار JDK 17 أو إصدار أحدث.
عند استخدام AGP بشكل مستقل عن "استوديو Android"، يجب ترقية إصدار JDK من خلال
إعداد JAVA_HOME
متغيّر البيئة
أو -Dorg.gradle.java.home
خيار سطر الأوامر
إلى دليل تثبيت JDK 17.