الإصدار 8.0.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (نيسان/أبريل 2023)

الإصدار 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.