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

يُعدّ الإصدار 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.

إصدارات الرموز الإصلاحية

في ما يلي قائمة بإصدارات التصحيح للمكوّن الإضافي لنظام 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)

يتضمّن هذا التحديث البسيط إصلاحات للأخطاء التالية:

المشاكل التي تم إصلاحها
الخطأ: "لا يتوفّر عنصر VersionRequirement يحمل رقم التعريف المحدّد في الجدول" بعد ترقية 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 ومصادر التطبيق.

لمزيد من المعلومات، يُرجى الاطّلاع على التعليق رقم 19 في المشكلة رقم 191813691.

التغييرات الأساسية: القيم التلقائية لخيار الإنشاء

بدءًا من الإصدار 8.0 من AGP، تم تغيير القيم التلقائية لهذه العلامات لتحسين أداء عملية الإنشاء. للحصول على مساعدة في تعديل الرمز البرمجي لتتوافق مع بعض هذه التغييرات، استخدِم "مساعِد ترقية AGP" (الأدوات > مساعِد ترقية AGP). يرشدك "مساعِد الترقية" خلال عملية تعديل الرمز البرمجي ليتلاءم مع السلوك الجديد أو ضبط علامات للحفاظ على السلوك السابق.

إبلاغ القيمة التلقائية الجديدة القيمة التلقائية السابقة ملاحظات
android.defaults.buildfeatures.buildconfig false true لا ينشئ AGP 8.0 BuildConfig تلقائيًا. عليك تحديد هذا الخيار باستخدام لغة برمجة التطبيقات المحدودة (DSL) في المشاريع التي تحتاج فيها إلى ذلك.
android.defaults.buildfeatures.aidl false true لا يفعّل الإصدار 8.0 من AGP ميزة دعم 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 لا يُسمح باستخدام الإصدار 8.0 من AGP مع عمليات الإنشاء التي تستخدِم R8 في حال عدم توفّر فئات لضمان تحسين أفضل لـ DEX. لحلّ هذه المشكلة، عليك إضافة المكتبات المفقودة أو -dontwarn قواعد الاحتفاظ. لمزيد من التفاصيل، يُرجى الاطّلاع على تحذيرات عدم توفّر فئة في أداة تصغير R8.
android.testConfig.useRelativePath true عند تفعيل إمكانية استخدام موارد Android ومواد العرض والملفات البيانية في اختبارات الوحدات، ينشئ AGP 8.0 ملفًا test_config.properties يحتوي على مسارات نسبية فقط. يضمن ذلك أنّه يمكن لاختبارات وحدات Android استخدام ذاكرة التخزين المؤقت لإنشاء Gradle في أي وقت.
android.useNewJarCreator true يستخدم AGP مكتبة Zipflinger عند إنشاء ملفات JAR لتحسين أداء عملية الإنشاء.
android.bundletool.includeRepositoriesInDependencyReport true عند تفعيل إضافة معلومات العناصر الاعتمادية لحزمة SDK في حِزم APK وحِزم AAB، يضيف 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
  ...
}

الملفات الشخصية لتنفيذ الأدوات

يتيح لك المكوّن الإضافي للإعدادات أيضًا إنشاء ملفات تعريف تنفيذ لبعض الأدوات. يحدِّدملف التنفيذ كيفية تشغيل الأداة، ويمكنك اختيار ملفات تنفيذ مختلفة حسب البيئة. في ملف التنفيذ، يمكنك ضبط مَعلمات Java Virtual Machine لأداة وضبطها لتشغيلها في عملية منفصلة. لا تتوفّر حاليًا سوى أداة 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. يُجمِّع إصدار Flamingo من Android Studio حِزمة 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) المتوقّفة نهائيًا.
يجب ألا يستخدم "مكوّن Android Gradle الإضافي" الدالة ConfigureUtil.configure(closure, target) المتوقفة نهائيًا.
تعديل اختبارات AGP لاستخدام الإصدار التجريبي من KGP 1.7.20
تعذّر تثبيت الإصدار 7.4 من Gradle (تعذّر إنشاء مثيل لخدمة AnalyticsService)
ظهور "ثابت تعداد غير معروف" جديد من javac في AGP 7.4.0-alpha09
عملية ضبط MergeGeneratedProguardFilesCreationAction بطيئة حتى مع تفعيل ميزة التخزين المؤقت للإعدادات
[AGP] إضافة دليل المصدر الذي تم إنشاؤه إلى نموذج IDE (Variant API)
تم إيقاف 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.
حِزم AAR تتضمّن عناصر سابقة غير صالحة
نقل البيانات من السمة destination إلى السمة outputLocation للتعامل مع تحذير الإيقاف النهائي والاستعداد لاستخدام الإصدار 9.0 من Gradle
مراعاة العلامة `--release` عند إعداد مهمة JavaCompile
[AGP-7.3.0-beta03] تعذّر تنفيذ ShrinkResourcesNewShrinkerTask عند توفّر سطر فارغ بعد إعلان xml
يتم تشغيل استهداف lintVital تلقائيًا في صيغة تصحيح الأخطاء.
التحذير عند عدم توفّر ملفات Proguard
يحاول AGP إضافة kotlinOptions.freeCompilerArgs في مرحلة تنفيذ المهام.
تعذّرت مزامنة Gradle: تعذّرت المزامنة: سبب غير معروف
DependencyReportTask غير متوافق مع ذاكرة التخزين المؤقت للإعدادات
يؤدي إلغاء الموارد باستخدام resValue في build.gradle إلى ظهور الخطأ: موارد مكرّرة
يحتوي نوع الإصدار "debug" على مفتاح توقيع تلقائي، ولا يحتوي الأنواع الأخرى على مفتاح توقيع.
يؤدي استخدام الميزات الديناميكية وتقليص الموارد إلى حدوث عطل في وقت التشغيل
يحتوي نوع الإصدار "debug" على مفتاح توقيع تلقائي، ولا يحتوي الأنواع الأخرى على مفتاح توقيع.
دليل المصدر الذي تم إنشاؤه مُدرَج كدليل 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: لا يمكن العثور على المورد: id
تعطُّل configureCMakeDebug بشكل متقطع بسبب استثناء المؤشر الفارغ
IllegalAccessError ترقية المشروع إلى AS2022.2.1.5، FireBasePerfPlugin
يتعذّر إجراء المزامنة مع ظهور خطأ غامض "لا تحتوي المجموعة على أي عنصر يتطابق مع العبارة الأساسية".
لا تُحوِّل واجهة برمجة التطبيقات Instrumentation API متطلّبات الملفات المحلية.
خطأ "يتم الاستعلام عن AnnotationProcessorOptions.arguments" عند التحديث إلى الإصدار 7.4 Beta 1
نقل المكوّنات الإضافية العلنية في Gradle إلى gradle-api وإزالة BasePlugin.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 هو دليل، ولكن تم وضع علامة عليه كملف إخراج.
تؤدي الترقية إلى AGP 7.4 إلى حدوث خطأ StackOverflowError
تعذُّر تنفيذ processDebugUnitTestManifest مع عناصر نائبة للبيان لأنواع الاختبار
يحصل Lint على معلومات مجموعات المصادر بدون الاعتماد على أيّ مكوّنات أخرى.
يشير خطأ الإنشاء إلى المستوى 34 لواجهة برمجة التطبيقات، وهو مستوى غير متوفّر.
"ننصح باستخدام مكوّن إضافي أحدث من Android Gradle" عندما لا يتوفّر مكوّن إضافي أحدث
لا تعمل القيمة android.injected.testOnly=false
Dexer (D8)
خطأ في دمج Dex مرتبط بالبيانات التركيبية الشاملة بعد ترقية AS Canary 6 إلى 7
تحديث مكتبة البيانات الوصفية في Kotlin إلى الإصدار 0.6.0
يبدو أنّ الحلّ البديل لـ JDK-8272564 مطلوب على مستوى واجهة برمجة التطبيقات من 28 إلى 30
Lint
لا يعمل فحص ResourceType lint لمصادر Kotlin
لا تعالج أداة VersionChecks عمليات التحقّق من النطاق في Kotlin.
موجب خاطئ لواجهة برمجة التطبيقات المضمّنة عند تغليفها
موجب خاطئ في Lint بشأن إعادة التدوير في openInputStream
[BuildTool/Lint] سمة طريقة الإنشاء ChecksSdkIntAtLeast
Lint: PartialResults merging works incorrectly
يضع "استوديو Android" علامة على الإصدار المحدّد بأنّه قديم بشكل غير صحيح.
لم يتم تسجيل EP AndroidDeprecationInspection.DeprecationFilter مطلقًا في ملف android-plugin.xml.
تفسير التحقّق من الأخطاء في AccessibilityDetector قديم
يجب أن تفهم عمليات التحقّق من Lint SDK_INT المتغيّرات المحلية المؤقتة
خطأ عند استبدال TestMode.TYPE_ALIAS بنوع الدالة بنوع typealias
خطأ: عند إنشاء ObjectAnimator خارج مجموعة الرموز البرمجية الحالية، تظهر تحذيرات إيجابية خاطئة بعدم بدئه.
Lint: NPE due to querying Application instance in mergeOnly mode
لا يمكن لقاعدة فحص الأخطاء NonConstantResourceId رصد تعيين قيم ثابتة من معرّف المورد.
لا يظهر خطأ في معرّف العرض
يؤدي تعذُّر تحويل ترميز ذاكرة التخزين المؤقت لموارد التدقيق إلى تنسيق ثنائي إلى حدوث خطأ في التدقيق (ولكن من المفترض أن يكون تحذيرًا).
AGP Flamingo Alpha 8 Lint NewApi Desugar Regression
لم تتم إزالة رمز 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
إتاحة ميزة استلام السياق في البيانات الوصفية
java.lang.VerifyError: Verifier rejected class androidx.compose.ui.graphics.colorspace.o: void androidx.compose.ui.graphics.colorspace.o.(java.lang.Object) failed to verify: void androidx.compose.ui.graphics.colorspace.o.(java.lang.Object): [0x0] cannot access instance field java.lang.Object androidx.compose.ui.graphics.colorspace.n.a from object of type Precise Reference: androidx.compose.ui.graphics.colorspace.o
AGP 7.4.0/7.3.1 - محاولة إضافة إجراء إلى قائمة عمل أداة إضافة إلى "قائمة المحتوى التالي" غير القابلة للدفع
تصغير رمز Renderscript: انخفاض كبير في الأداء عند ترقية AGP من 7.3.1 إلى 7.4.0

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

المشاكل التي تم إصلاحها
Shrinker (R8)
الخطأ: "لا يتوفّر عنصر VersionRequirement يحمل رقم التعريف المحدّد في الجدول" بعد ترقية 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
VerifyError: Verifier rejected class when using R8 with Kotlin 1.8.20
يتسبب الإصدار R8 من Android 8 في إيقاف خدمة Google Fit
لا يتم عرض معلومات الملف المصدر التي تتضمّن أسماء متبقية تتداخل مع أسماء الإدخال بشكل صحيح.