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

الإصدار 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
فشل الإصدار غير المستقر في مهمة MergeResources
تم إيقاف JavaPluginConvention وHasConvention نهائيًا
مكان الملف غير صحيح وغير متّسق لواجهة برمجة التطبيقات الجديدة لتحويل البيانات
يجب ألا يستخدم المكوّن الإضافي Android Gradle الدالة GUtil.toWords(string) المتوقّفة نهائيًا.
يجب ألا يستخدم "المكوّن الإضافي لنظام Gradle المتوافق مع Android" دالة ConfigurationUtil.enable(closure, target) المتوقّفة نهائيًا
يجب تحديث اختبارات AGP لاستخدام الإصدار التجريبي 1.7.20 من KGP
تعذُّر استخدام Gradle 7.4 (تعذّر إنشاء مثيل من AnalyticsService)
"ثابت تعداد غير معروف" جديد من javac على AGP 7.4.0-alpha09
تهيئة MergeGeneratedProguardFilesCreationAction بطيئة حتى مع تفعيل ميزة التخزين المؤقت للإعدادات
[AGP] إضافة دليل المصدر الذي تم إنشاؤه إلى نموذج IDE (واجهة برمجة تطبيقات المتغيّر)
تم إيقاف JavaPluginConvention وHasConvention نهائيًا
عدم إضافة ignorewarnings إلى R8 تلقائيًا
التحذير عند عدم توفّر ملفات Proguard
AGP 7.3.0 يوقف مزامنة Gradle لمشروعات منصة Gradle
مكتبة apksig: تم وضع علامة ApkVerifier$Result.getV4SchemeSigners() على أنها خاصة
إيقاف إنشاء إعدادات androidJacocoAnt في حال عدم تفعيل التغطية
لا يؤدي استخدام @IntDef في مكوّن مكتبة إلى إنشاء annotations.zip في ملف aar.
تعذّر العثور على نوع Super مشترَك لـ و
إضافة إصدار خاصية Gradle من LINT_Print_STACKTRACE=true
قطع أثرية قديمة جاهزة يتم تغليفها في ميزة "التطبيق التلقائي للاقتراحات"
نقل البيانات من السمة destination إلى السمة outputLocation للتعامل مع تحذير الإيقاف النهائي والاستعداد لاستخدام الإصدار 9.0 من Gradle
وضع علامة "--Release" في الاعتبار عند إعداد مهمة JavaCompile
[AGP-7.3.0-beta03] يتعذّر استخدام ShrinkResourcesNewShrinkerTask عند توفُّر سطر فارغ بعد إعلان xml.
يتم تشغيل هدف lintVital تلقائيًا في نسخة تصحيح الأخطاء.
التحذير عند عدم توفّر ملفات Proguard
يحاول AGP إضافة kotlinOptions.freeCompilerArgs في مرحلة تنفيذ المهمة
تعذّرت مزامنة Gradle: تعذَّرت المزامنة: السبب غير معروف
DependencyReportTask غير متوافق مع ذاكرة التخزين المؤقت للإعدادات.
يؤدي إلغاء الموارد باستخدام resValue في build.gradle إلى ظهور الخطأ: موارد مكرّرة
"تصحيح الأخطاء" نوع الإصدار هو مفتاح توقيع تلقائي، والبعض الآخر ليس له مفتاح توقيع
يؤدي استخدام الميزات الديناميكية وتقليص الموارد إلى حدوث أعطال في بيئة التشغيل
"تصحيح الأخطاء" نوع الإصدار هو مفتاح توقيع تلقائي، والبعض الآخر ليس له مفتاح توقيع
دليل مصدر تم إنشاؤه مدرج كدليل Java في موفر المصدر الرئيسي لنموذج Lint
يتسبب الإصدار Gradle 8.0-milestone-2 في حدوث استثناء في أداة AGP
تحسين دمج البيانات للتطبيقات والمكتبة
إضافة gradle-settings-api إلى عملية إنشاء javadoc
ظهور "ثابت تعداد غير معروف" جديد من javac في AGP 7.4.0-alpha09
ينشئ AGP 7.4.0-alpha09 إصدارات لا يتم تحميلها إلى Firebase App Distribution
لا يتم أخذ ملف lint.xml في الوحدات في الاعتبار عند فحص مهام أداة Lint.
مشكلة الإصدار 7.0 أو الإصدارات الأحدث من المكوّن الإضافي لنظام Gradle المتوافق مع Android واختبارات Android: تعذّر العثور على المورد: المعرّف
تعطُّل configureCMakeDebug بشكل متقطع بسبب استثناء المؤشر الفارغ
ترقية المشروع UnknownAccessError إلى AS2022.2.1.5 وFireBasePerfplin
تعذّر إجراء المزامنة مع ظهور خطأ غامض "لا تحتوي المجموعة على أي عنصر يتطابق مع التقييم".
لا تُحوِّل واجهة برمجة التطبيقات Instrumentation API متطلّبات الملفات المحلية.
خطأ "يتم الاستعلام عن AnnotationProcessorOptions.arguments" عند التحديث إلى الإصدار 7.4 Beta 1
نقل مكوّنات Gradle العامة العامة إلى واجهة برمجة تطبيقات Gradle، وإزالة Baseplin.getExtension
لا يتم استخدام r8.jvmArgs
JDK17 هو الحد الأدنى للإصدار المطلوب لاستخدام AGP
AGP 8.0.0 A8 يفصل الملفات الشخصية المرجعية
تغيير compileSdkVersion إلى compileSdk في رسالة CheckAarMetadataTask في AGP 8.0
يؤدي الإصدار AGP 7.4.0-rc01 إلى إيقاف Variant API مع ظهور الرسالة "الاستعلام عن القيمة المُحدَّدة في map(provider(java.util.Set)) قبل اكتمال المهمة "..." غير متاح".
مشاكل "com.android.build.gradle.tasks.ShaderCompile" في ذاكرة التخزين المؤقت للإعدادات
تؤدي الإضافة إلى موارد Java باستخدام واجهات برمجة تطبيقات AGP إلى إيقاف ذاكرة التخزين المؤقت للإعدادات
المكوّن الإضافي Lint ليس جزءًا من gradle-api
DexingFileDependenciesTask.outputKeepRules هو دليل ولكن يتم وضع علامة عليه OutputFile.
ظهور خطأ StackOverflowError عند الترقية إلى AGP 7.4
تعذُّر إتمام العمليةDebugUnitTestManifest باستخدام العناصر النائبة للبيان لنُسخ الاختبار
يحصل Lint على معلومات مجموعات المصادر بدون الاعتماد على أيّ مكوّنات أخرى.
يشير خطأ الإنشاء إلى المستوى 34 لواجهة برمجة التطبيقات، وهو مستوى غير متوفّر.
"ننصحك باستخدام مكوّن إضافي أحدث لنظام Gradle المتوافق مع Android" عندما لا يتوفّر حل أحدث
لا يعمل android.injected.testOnly=false.
Dexer (D8)
خطأ في دمج Dex يتعلق بالعناصر الاصطناعية العامة بعد ترقية AS Canary 6 إلى 7
تحديث مكتبة البيانات الوصفية بلغة Kotlin إلى الإصدار 0.6.0
يبدو أنّ الحلّ البديل لـ JDK-8272564 مطلوب على مستوى واجهة برمجة التطبيقات من 28 إلى 30
Lent
لا يعمل فحص ResourceType lint لمصادر Kotlin
لا تعالج أداة VersionChecks عمليات التحقّق من النطاق في Kotlin.
خطأ موجبة خطأ لـ IninlineApi عند التفافه
موجب خاطئ في Lint بشأن إعادة التدوير في openInputStream
[BuildTool/Lint] سمة الدالة الإنشائية ChecksSdkIntAtLeast
Lint: PartialResults merging works incorrectly
يضع "استوديو Android" علامة غير صحيحة على الإصدار المحدَّد بأنّه قديم.
لم يتم تسجيل AndroidDeprecateInspection.DeprectionFilter EP مطلقًا في ملف android-plugin.xml
تفسير التحقّق من الأخطاء في AccessibilityDetector قديم
يجب أن تفهم عمليات التحقّق من Lint SDK_INT المتغيّرات المحلية المؤقتة
خطأ عند استبدال TestMode.TYPE_ALIAS بنوع الدالة بنوع typealias
خطأ: عند إنشاء ObjectAnimator خارج مجموعة الرموز البرمجية الحالية، تظهر تحذيرات إيجابية خاطئة بعدم بدئه.
Lint: NPE due to querying Application instance in mergeOnly mode
لا يمكن لقاعدة فحص الأخطاء NonConstantResourceId رصد تعيين قيم ثابتة من معرّف المورد.
لا يظهر خطأ في معرّف العرض
يؤدي تعذُّر تحويل ترميز ذاكرة التخزين المؤقت لموارد التدقيق إلى تنسيق ثنائي إلى حدوث خطأ في التدقيق (ولكن من المفترض أن يكون تحذيرًا).
انحدار السكر في جذور الفلامينغو 8 Lint NewApi
لم تتم إزالة رمز TypedArray#close (المستوى 31 لواجهة برمجة التطبيقات)، ولكن لا يعرض "محرِّر AS" تحذيرًا عند استخدامه في try-with-resources
لا تتحقّق أداة Lint من عمليات التحويل الصالحة لمستلمي المكالمات.
لا تتحقّق أداة Lint من عمليات التحويل الآمنة إلا للواجهات التي يتم تنفيذها مباشرةً، وليس للواجهات المُكتسَبة.
دمج Lint
ملف الأساس هو حاليًا إدخال وإخراج لمهام Lint
Shrinker (R8)
خطأ في التأكيد / NPE في أداة التحقق من إطار CF
التراجع بعد إزالة ذاكرة التخزين المؤقت لبحث الحقل
طرح `:app:minifyVariantWithR8` خطأ NullPointerException في AGP 7.4.0-beta02
R8: ClassNotFoundException عند -allowaccessmodification
إضافة إمكانية استخدام أدوات استقبال السياق في البيانات الوصفية
AGP 7.4.0/7.3.1 - محاولة إدراج إجراء في قائمة عمل غير قابل للدفع
تصغير رمز Renderscript: انخفاض كبير في الأداء عند ترقية AGP من 7.3.1 إلى 7.4.0

الإصدار 8.0.1 من المكوّن الإضافي لنظام Gradle المتوافق مع Android

المشكلات التي تم إصلاحها
Shrinker (R8)
خطأ: "لا يلزم إصدار مطلوب بالمعرّف المحدّد في الجدول" بعد ترقية AGP 7.2.2 -> 7.4.0
R8 NullPointerException at markTypeAsLive AGP 7.4.1
[R8 4.0.53] تعذّر إثبات ملكية الفئة الثابتة على Android 11

الإصدار 8.0.2 من المكوّن الإضافي لنظام Gradle المتوافق مع Android

المشاكل التي تم إصلاحها
Shrinker (R8)
تعذُّر إنشاء R8 أثناء إنشاء Compose باستخدام ArrayIndexOutOfBoundsException
CheckError: رفض أداة التحقق من صحة الفئة عند استخدام R8 مع Kotlin 1.8.20
R8 على AGP 8 يوقف خدمة Google Fit
لا يتم بشكل صحيح تضمين معلومات ملف المصدر مع أسماء متبقية تتداخل مع أسماء الإدخالات