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