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

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

في ما يلي قائمة بإصدارات رموز التصحيح للإصدار 8.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android.

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

للاطّلاع على قائمة بالأخطاء التي تم إصلاحها في الإصدار 8.0.2 من المكوّن الإضافي لنظام Gradle المتوافق مع Android، راجِع المشاكل التي تم إغلاقها في الإصدار 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 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android"
R8 NullPointerException at markTypeAsLive AGP 7.4.1
[R8 4.0.53] تعذُّر التحقّق من الفئة الصعبة على Android 11

تغيير قد يؤدي إلى عطل: يجب توفير مساحة الاسم في نص برمجي التصميم على مستوى الوحدة

يجب ضبط مساحة الاسم في ملف build.gradle.kts على مستوى الوحدة بدلاً من ملف البيان. يمكنك بدء استخدام السمة namespace DSL بدءًا من الإصدار 7.3 من "استوديو Android". لمزيد من المعلومات، يُرجى الاطّلاع على ضبط مساحة اسم.

عند نقل البيانات إلى لغة DSL الخاصة بـ "مساحة الاسم"، يُرجى الانتباه إلى المشاكل التالية:

  • تستنتج الإصدارات السابقة من "مكوّن Android الإضافي في Gradle" مساحة الاسم التجريبية من مساحة الاسم الرئيسية أو معرّف التطبيق بشكل غير صحيح في بعض الحالات. يمنع "مساعد ترقية" Android Gradle Plugin الترقية إذا تبيّن له أنّ مساحة الاسم الرئيسية ومساحة اسم الاختبار في مشروعك متطابقتان. إذا تم حظر الترقية، عليك تغيير testNamespace يدويًا وتعديل رمز المصدر وفقًا لذلك.
  • بعد تغيير مساحة الاسم الخاصة بالاختبار، من المحتمل أن يتم تجميع الرمز البرمجي، ولكن ستتعذّر الاختبارات المزوّدة بأدوات في وقت التشغيل. يمكن أن يحدث ذلك إذا كان رمز المصدر للاختبار المزوّد بأدوات يرجع إلى مورد محدّد في كل من مصادر androidTest ومصادر التطبيق.

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

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

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

إبلاغ القيمة التلقائية الجديدة القيمة التلقائية السابقة الملاحظات
android.defaults.buildfeatures.buildconfig false true لا ينشئ الإصدار 8.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" BuildConfig تلقائيًا. عليك تحديد هذا الخيار باستخدام لغة DSL في المشاريع التي تحتاج إليه.
android.defaults.buildfeatures.aidl false true لا يفعّل الإصدار 8.0 من "مكوّن Android الإضافي في Gradle" ميزة التوافق مع AIDL تلقائيًا. عليك تحديد هذا الخيار باستخدام لغة DSL في المشاريع التي تحتاج إليها. من المقرر إزالة هذه العلامة في الإصدار 9.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android".
android.defaults.buildfeatures.renderscript false true لا يفعّل الإصدار 8.0 من "مكوّن Android الإضافي في Gradle" ميزة RenderScript تلقائيًا. عليك تحديد هذا الخيار باستخدام لغة DSL في المشاريع التي تحتاج إليه. من المقرر إزالة هذه العلامة في الإصدار 9.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android".
android.nonFinalResIds true false يُنشئ الإصدار 8.0 من "مكوّن Android الإضافي في Gradle" فئات R تتضمّن حقولاً غير نهائية تلقائيًا.
android.nonTransitiveRClass true false ينشئ الإصدار 8.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" فئات 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 يفشل الإصدار 8.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android في إنشاء عمليات الربط التي تستخدم R8 إذا كانت هناك فئات غير متوفّرة، وذلك لضمان تحسين DEX بشكل أفضل. لحلّ هذه المشكلة، عليك إضافة المكتبات الناقصة أو -dontwarn قواعد الاحتفاظ. لمزيد من التفاصيل، يُرجى الاطّلاع على تحذيرات بشأن الفئات غير المتوفّرة في أداة التصغير R8.
android.testConfig.useRelativePath true عند تفعيل إمكانية استخدام موارد Android ومواد العرض وبيانات البيان في اختبارات الوحدات، ينشئ الإصدار 8.0 من Android Gradle Plugin ملف 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.
android.enableNewResourceShrinker true استخدام آلية تنفيذ أداة تصغير حجم الموارد الجديدة تلقائيًا تتضمّن أداة تصغير الموارد الجديدة إمكانية استخدام الميزات الديناميكية.
android.enableSourceSetPathsMap true تُستخدَم لحساب عمليات ربط مسارات الموارد النسبية، وبالتالي تكون إصدارات Gradle أكثر حداثة.
android.cacheCompileLibResources true يمكن الآن تخزين موارد المكتبة التي تم تجميعها مؤقتًا تلقائيًا لأنّ Gradle يتتبّع ملفات الموارد بالنسبة إلى موقع المشروع. يجب تفعيل تطبيق android.enableSourceSetPathsMap.
android.disableAutomaticComponentCreation true لا ينشئ الإصدار 8.0 من "مكوّن Android الإضافي لنظام Gradle" أي SoftwareComponent تلقائيًا. بدلاً من ذلك، تنشئ "مكوّنات Android Gradle"‏ (AGP) مكوّنات SoftwareComponent فقط للمتغيرات التي تم ضبطها ليتم نشرها باستخدام لغة DSL الخاصة بالنشر.

علامة ثابتة جديدة لملف التنفيذ

يتضمّن AGP العلامة الجديدة android.settings.executionProfile. استخدِم هذه العلامة لتجاوز ملف التنفيذ التلقائي من SettingsExtension. لمزيد من المعلومات، يُرجى الاطّلاع على مستندات إضافة الإعدادات.

لمعاينة العلامات التجريبية، اطّلِع على ملاحظات إصدار المعاينة.

لا يمكن تعيين قيمة لسمة Kotlin الكسولة

إذا كنت تستخدم Kotlin DSL من Gradle لبرامج الإصدار، يُرجى العِلم أنّ الإصدار 8.0 من "استوديو Android" و"مكوّن Android الإضافي لبرنامج Gradle" لا يتيحان تعيين الخصائص التجريبية باستخدام عامل التشغيل =. لمزيد من المعلومات حول هذه الميزة، يُرجى الاطّلاع على ملاحظات الإصدار و المستندات.

فئات مهام "أداة تحليل الإصدار"

اعتبارًا من Android Studio Flamingo، تتضمّن "أداة تحليل الإصدار" عرضًا تلقائيًا جديدًا للمهام التي تؤثّر في مدة الإصدار. إذا كان مشروعك يستخدم الإصدار 8.0 أو إصدارًا أحدث من AGP، سيصنّف "أداة تحليل الإصدار" المهام حسب الفئة بدلاً من عرضها بشكل فردي. على سبيل المثال، يتم تجميع المهام الخاصة بموارد Android أو Kotlin أو Dexing معًا، ثم يتم ترتيبها حسب مدة الإنشاء. يسهّل ذلك معرفة الفئة التي لها التأثير الأكبر في مدّة التصميم. يؤدي توسيع كل فئة إلى عرض قائمة بالمهام ذات الصلة. لعرض المهام بشكل فردي، بدون تجميع، استخدِم القائمة المنسدلة التجميع حسب.

فئات مهام "أداة تحليل الإصدار"

مكوّن إضافي جديد للإعدادات

يقدّم الإصدار 8.0.0-alpha09 من "مكوّن Android الإضافي لبرنامج Gradle" مكوّنًا إضافيًا جديدًا للإعدادات. يتيح لك المكوّن الإضافي للإعدادات تجميع الإعدادات العامة، أي الإعدادات التي تنطبق على جميع الوحدات، في مكان واحد، ما يغنيك عن نسخ الإعدادات ولصقها في وحدات متعددة. بالإضافة إلى ذلك، يمكنك استخدام مكوّن الإعدادات الإضافي لإنشاء ملفات تنفيذ الأدوات أو تعليمات مختلفة حول كيفية تشغيل أداة، والتبديل بينها.

أو إصدارًا أحدث من "مكوّن 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

يجب استخدام الإصدار 17 من حزمة تطوير البرامج Java (JDK) لتشغيل الإصدار 8.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android"

عند استخدام الإصدار 8.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android لإنشاء تطبيقك، يجب الآن استخدام الإصدار 17 من JDK لتشغيل Gradle. يضم إصدار Android Studio Flamingo حزمة تطوير البرامج (JDK) 17 ويضبط Gradle لاستخدامها تلقائيًا، ما يعني أنّ معظم مستخدمي "استوديو Android" لن يحتاجوا إلى إجراء أي تغييرات في إعدادات مشاريعهم.

إذا كنت بحاجة إلى ضبط إصدار JDK يدويًا الذي يستخدمه "مكوّن Android الإضافي لبرنامج Gradle" داخل "استوديو Android"، عليك استخدام الإصدار 17 من JDK أو إصدار أحدث.

عند استخدام "المكوّن الإضافي لنظام Gradle المتوافق مع Android" بشكل مستقل عن "استوديو Android"، عليك ترقية إصدار JDK من خلال ضبط JAVA_HOME متغيّر البيئة أو -Dorg.gradle.java.home خيار سطر الأوامر على دليل تثبيت JDK 17.

المشاكل التي تم إصلاحها

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

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

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

المشاكل التي تم إصلاحها
Shrinker (R8)
الخطأ: "No VersionRequirement with the given id in the table" بعد الترقية من الإصدار 7.2.2 إلى الإصدار 7.4.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android"
R8 NullPointerException at markTypeAsLive AGP 7.4.1
[R8 4.0.53] تعذُّر التحقّق من الفئة الصعبة على Android 11

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

المشاكل التي تم إصلاحها
المكوّن الإضافي لنظام Gradle المتوافق مع Android
تعذُّر إنشاء إصدار غير مستقر في مهمة MergeResources
تم إيقاف JavaPluginConvention وHasConvention نهائيًا
موقع ملف غير صحيح وغير متسق لواجهة برمجة التطبيقات الجديدة لتحويل البيانات
يجب ألا يستخدم المكوّن الإضافي لنظام Gradle المتوافق مع Android الدالة المتوقّفة نهائيًا GUtil.toWords(string)
يجب ألا يستخدم المكوّن الإضافي لنظام Gradle المتوافق مع Android الدالة المتوقّفة نهائيًا ConfigureUtil.configure(closure, target)
تعديل اختبارات "المكوّن الإضافي لنظام Gradle المتوافق مع Android" لاستخدام الإصدار 1.7.20 التجريبي من "المكوّن الإضافي لنظام Gradle المتوافق مع Kotlin"
تعذُّر Gradle 7.4 (تعذّر إنشاء مثيل من AnalyticsService)
خطأ جديد "unknown enum constant" من javac في الإصدار ‎7.4.0-alpha09 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android"
عملية إعداد MergeGeneratedProguardFilesCreationAction بطيئة حتى مع تفعيل التخزين المؤقت للإعدادات
[AGP] إضافة دليل ملفات المصدر الذي تم إنشاؤه إلى نموذج بيئة التطوير المتكاملة (Variant API)
تم إيقاف JavaPluginConvention وHasConvention نهائيًا
عدم إضافة ignorewarnings إلى R8 تلقائيًا
إظهار تحذير عند عدم توفّر ملفات Proguard
الإصدار 7.3.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" يؤدي إلى تعذُّر مزامنة Gradle لمشاريع منصة Gradle
تم وضع علامة "خاص" على الدالة apksig library: ApkVerifier$Result.getV4SchemeSigners()
إيقاف إنشاء إعداد androidJacocoAnt إذا لم يتم تفعيل التغطية
لا يؤدي استخدام ‎ @IntDef في أحد مكونات المكتبة إلى إنشاء ملف annotations.zip في ملف AAR
تعذّر العثور على نوع فائق مشترك لكل من و
أضِف إصدارًا لخاصية Gradle‏ LINT_PRINT_STACKTRACE=true
تضمين عناصر جاهزة قديمة في حزمة AAR
نقل البيانات من الموقع الوجهة إلى الموقع outputLocation لمعالجة تحذير الإيقاف النهائي والاستعداد لاستخدام Gradle 9.0
أخذ العلامة ‎ `--release` ‎ في الاعتبار عند إعداد مهمة JavaCompile
[AGP-7.3.0-beta03] تعذُّر تنفيذ مهمة ShrinkResourcesNewShrinkerTask عند توفّر سطر فارغ بعد تعريف XML
يتم تشغيل هدف lintVital تلقائيًا في صيغة تصحيح الأخطاء
إظهار تحذير عند عدم توفّر ملفات Proguard
يحاول AGP إضافة kotlinOptions.freeCompilerArgs في مرحلة تنفيذ المهمة
تعذُّر مزامنة Gradle: تعذُّر المزامنة: السبب غير معروف
‫DependencyReportTask غير متوافق مع ذاكرة التخزين المؤقت للإعدادات
يؤدي تجاهل الموارد باستخدام resValue في ملف build.gradle إلى ظهور الخطأ: "موارد مكرّرة"
يحتوي نوع التصميم "تصحيح الأخطاء" على مفتاح توقيع تلقائي، بينما لا تحتوي الأنواع الأخرى على مفتاح توقيع تلقائي
استخدام الميزات الديناميكية وتقليص الموارد يؤدي إلى حدوث عطل أثناء التشغيل
يحتوي نوع التصميم "تصحيح الأخطاء" على مفتاح توقيع تلقائي، بينما لا تحتوي الأنواع الأخرى على مفتاح توقيع تلقائي
تم إدراج دليل ملفات المصدر الذي تم إنشاؤه كدليل Java في موفّر المصدر الرئيسي لنموذج أداة Lint
الإصدار 8.0-milestone-2 من Gradle يتسبّب في حدوث استثناء في "المكوّن الإضافي لنظام Gradle المتوافق مع Android"
تحسين دمج ملف البيان للتطبيقات والمكتبات
إضافة gradle-settings-api إلى إنشاء Javadoc
خطأ جديد "unknown enum constant" من javac في الإصدار ‎7.4.0-alpha09 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android"
ينشئ الإصدار 7.4.0-alpha09 من المكوّن الإضافي لنظام Gradle المتوافق مع Android إصدارات لا يمكن تحميلها إلى Firebase App Distribution
لا يتم أخذ ملف lint.xml في الوحدات في الاعتبار عند التحقّق من حالة "محدّث" لمهام Lint
المكوّن الإضافي لنظام Gradle المتوافق مع Android 7.0 والإصدارات الأحدث ومشاكل اختبارات Android: يتعذّر العثور على المورد: id
تعطُّل configureCMakeDebug بشكل متقطع بسبب استثناء مؤشر فارغ
IllegalAccessError عند ترقية المشروع إلى الإصدار ‎2022.2.1.5 من Android Studio، FireBasePerfPlugin
تتعذّر المزامنة ويظهر الخطأ الغامض "لا تحتوي المجموعة على أي عنصر مطابق للمسند".
لا تحوّل واجهة برمجة التطبيقات Instrumentation API التبعيات الخاصة بالملفات المحلية
الخطأ `AnnotationProcessorOptions.arguments are queried` عند التحديث إلى الإصدار التجريبي 1 من 7.4
نقل المكوّنات الإضافية العامة لنظام Gradle إلى gradle-api وإزالة BasePlugin.getExtension
لا يتم استخدام r8.jvmArgs
الإصدار 17 من JDK هو الحد الأدنى المطلوب من أجل استخدام "المكوّن الإضافي لنظام Gradle المتوافق مع Android"
الإصدار A8 من "مكوّن Android الإضافي في Gradle"‏ 8.0.0 يؤدي إلى تعطُّل ملفات تعريف خط الأساس
تغيير compileSdkVersion إلى compileSdk في رسالة CheckAarMetadataTask في الإصدار 8.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android"
يؤدي الإصدار 7.4.0-rc01 من "مكوّن Android الإضافي في Gradle" إلى تعطيل Variant API بسبب ظهور الخطأ "Querying the mapped value of map(provider(java.util.Set)) before task '...' has completed is not supported"
مشاكل في `com.android.build.gradle.tasks.ShaderCompile` مع ذاكرة التخزين المؤقت للإعداد
تؤدي إضافة موارد إلى Java باستخدام واجهات برمجة التطبيقات في "مكوّن Android الإضافي في Gradle" إلى تعطيل ذاكرة التخزين المؤقت للإعدادات
المكوّن الإضافي Lint ليس جزءًا من gradle-api
‫DexingFileDependenciesTask.outputKeepRules هو دليل ولكن تم وضع علامة عليه كملف إخراج
تؤدي الترقية إلى الإصدار 7.4 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" إلى حدوث خطأ StackOverflowError
تعذُّر عملية processDebugUnitTestManifest بسبب العناصر النائبة للبيان في صيغ الاختبار
تصل أداة Lint إلى معلومات مجموعات المصادر بدون تبعيات
يشير خطأ الإنشاء إلى المستوى 34 لواجهة برمجة التطبيقات، وهو مستوى غير متوفّر
ننصحك باستخدام إصدار أحدث من المكوّن الإضافي لنظام Gradle المتوافق مع Android" عندما لا يتوفّر إصدار أحدث
android.injected.testOnly=false لا يعمل
Dexer (D8)
خطأ في دمج Dex مرتبط بالبيانات الاصطناعية العامة بعد ترقية الإصدار 6 من Android Studio Canary إلى الإصدار 7
تعديل مكتبة البيانات الوصفية للغة Kotlin إلى الإصدار 0.6.0
يبدو أنّ هناك حاجة إلى حلّ بديل للخطأ JDK-8272564 على مستويات واجهة برمجة التطبيقات من 28 إلى 30
Lint
لا يعمل فحص lint الخاص بـ ResourceType مع مصادر Kotlin
لا تعالج VersionChecks عمليات التحقّق من نطاق Kotlin
موجب خاطئ لـ InlinedApi عند تضمينه
موجب خاطئ في أداة Lint بشأن إعادة التدوير فيما يتعلق بـ openInputStream
‫[BuildTool/Lint] ChecksSdkIntAtLeast constructor property
Lint: دمج PartialResults يعمل بشكل غير صحيح
يضع "استوديو Android" علامة غير صحيحة على الإصدار المحدّد باعتباره قديمًا.
لا يتم تسجيل نقطة التوسيع AndroidDeprecationInspection.DeprecationFilter EP مطلقًا في ملف android-plugin.xml
شرح فحص AccessibilityDetector lint قديم
يجب أن تفهم عمليات التحقّق من Lint SDK_INT المتغيّرات المحلية المؤقتة
حدث خطأ عند استبدال نوع الدالة بنوع الاسم المستعار TestMode.TYPE_ALIAS
خلل: عند إنشاء ObjectAnimator خارج مجموعة الرموز الحالية، تظهر تحذيرات إيجابية خاطئة بعدم بدء تشغيلها #38
Lint: NPE due to querying Application instance in mergeOnly mode
لا يمكن لقاعدة NonConstantResourceId Lint اكتشاف القيم الثابتة من رقم تعريف المورد
عدم ظهور الخطأ في معرّف الملف الشخصي
يؤدي تعذُّر إلغاء تسلسل نتائج ذاكرة التخزين المؤقت لموارد Lint إلى حدوث خطأ في Lint (ولكن من المفترض أن يكون تحذيرًا).
تراجع في أداء أداة Lint في الإصدار الأوّلي 8 من AGP Flamingo NewApi Desugar
لم يتم إلغاء تحويل TypedArray#close (المستوى 31 لواجهة برمجة التطبيقات)، ولكن لا يعرض "استوديو Android" تحذيرًا عند استخدامه في try-with-resources
لا يتحقّق Lint من عمليات التحويل الصالحة لمستقبِلات المكالمات
لا يتحقّق Lint إلا من عمليات التحويل الآمنة للواجهات التي تم تنفيذها مباشرةً، وليس الواجهات الموروثة.
دمج Lint
ملف الأساس هو حاليًا إدخال وإخراج لمهام Lint
Shrinker (R8)
خطأ NPE / assertion في أداة التحقّق من إطارات CF
تراجع الأداء بعد إزالة ذاكرة التخزين المؤقت للبحث عن الحقول
يؤدي تنفيذ `:app:minifyVariantWithR8` إلى عرض NullPointerException في الإصدار 7.4.0-beta02 من "مكوّن Android الإضافي في Gradle"
‫R8: ClassNotFoundException عند استخدام الخيار allowaccessmodification-
إتاحة استخدام أدوات استقبال السياق في البيانات الوصفية
‫java.lang.VerifyError: ‏ رفض أداة التحقّق الفئة androidx.compose.ui.graphics.colorspace.o: void androidx.compose.ui.graphics.colorspace.o.(java.lang.Object) تعذّر التحقّق من: void androidx.compose.ui.graphics.colorspace.o.(java.lang.Object): [0x0] لا يمكن الوصول إلى الحقل java.lang.Object androidx.compose.ui.graphics.colorspace.n.a من عنصر من النوع Precise Reference: androidx.compose.ui.graphics.colorspace.o
الإصدار 7.4.0/7.3.1 من "مكوّن Android الإضافي لبرنامج Gradle": محاولة إضافة إجراء إلى قائمة عمل غير قابلة للإضافة
تصغير رمز Renderscript: انخفاض كبير في الأداء عند ترقية "مكوّن Android الإضافي لبرنامج Gradle" من الإصدار 7.3.1 إلى الإصدار 7.4.0