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

الإصدار 9.2 من المكوّن الإضافي لنظام Gradle المتوافق مع Android هو إصدار ثانوي يتضمّن مجموعة متنوّعة من الميزات والتحسينات الجديدة.

التوافق

الحدّ الأقصى لمستوى واجهة برمجة التطبيقات الذي يتوافق معه الإصدار 9.2 من المكوّن الإضافي لنظام Gradle المتوافق مع Android هو المستوى 37.0 لواجهة برمجة التطبيقات. في ما يلي معلومات أخرى عن التوافق:

الإصدار الأدنى الإصدار التلقائي ملاحظات
Gradle 9.4.1 9.4.1 لمزيد من المعلومات، اطّلِع على تحديث Gradle.
أدوات تصميم حزمة تطوير البرامج (SDK) 36.0.0 36.0.0 تثبيت أو ضبط أدوات إنشاء حزمة تطوير البرامج (SDK).
NDK لا ينطبق 28.2.13676358 ثبِّت أو اضبط إصدارًا مختلفًا من NDK.
JDK 17 17 لمزيد من المعلومات، يُرجى الاطّلاع على ضبط إصدار JDK.

تقارير الاختبار والتغطية الموحّدة

يقدّم الإصدار ‎9.2.0-alpha07 من "مكوّن Android الإضافي في Gradle" مهامًا لإنشاء لوحات بيانات HTML تجمع نتائج الاختبارات ومقدار التغطية من أنواع الاختبارات المختلفة (الوحدات والأدوات)، والوحدات، ومتغيرات الإصدار، ما يوفّر نظرة عامة شاملة في لوحة بيانات واحدة. لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء تقارير موحّدة حول نسبة استخدام رموز الصفحة وعرض تقارير الاختبار الموحّدة.

تغييرات R8

تم تضمين تغييرات R8 التالية في الإصدار 9.2.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android".

دلالات -keepattributes أكثر صرامة للحفاظ على التعليقات التوضيحية غير المرئية في وقت التشغيل

لا يمكن قراءة التعليقات التوضيحية غير المرئية في وقت التشغيل في وقت التشغيل. وبالتالي، يزيل D8 التعليقات التوضيحية غير المرئية في وقت التشغيل بدون أي شروط، ولا يتيح أي خيار لتغيير ذلك.

لضمان التوافق مع ProGuard، تتيح أداة R8 إخراج التعليقات التوضيحية غير المرئية في وقت التشغيل. ولكن عند التحويل إلى DEX، يجب عدم الاحتفاظ بالتعليقات التوضيحية غير المرئية في وقت التشغيل. ومع ذلك، من الشائع تضمين القاعدة الملائمة -keepattributes *Annotation* (إما بشكل مباشر أو غير مباشر من قواعد الاحتفاظ بالمستهلك) في R8 للاحتفاظ بالتعليقات التوضيحية المرئية في وقت التشغيل. للأسف، يؤدي ذلك أيضًا إلى إبقاء التعليقات التوضيحية غير المرئية في وقت التشغيل.

للتخفيف من هذه المشكلة ومطابقة سلوك D8 بشكل أفضل، لم تعُد أنماط -keepattributes التي تتضمّن أحرف بدل تتطابق مع RuntimeInvisibleAnnotations وRuntimeInvisibleParameterAnnotations وRuntimeInvisibleTypeAnnotations. نتيجةً لذلك، لن يتم الاحتفاظ بالتعليقات التوضيحية غير المرئية في وقت التشغيل إلا إذا تم ذكر اسم السمة بشكل صريح بدون أحرف بدل.

لن تحتفظ أي من القواعد التالية الآن بالتعليقات التوضيحية غير المرئية في وقت التشغيل:

-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*

للاحتفاظ بالتعليقات التوضيحية غير المرئية في وقت التشغيل، استخدِم القاعدة التالية:

-keepattributes RuntimeInvisibleAnnotations,
                RuntimeInvisibleParameterAnnotations,
                RuntimeInvisibleTypeAnnotations

إتاحة استخدام الأسماء المنفية في قواعد الأعضاء

تم توسيع نطاق لغة الإعدادات لتتمكّن الآن من مطابقة أنماط أسماء الأعضاء المنفية.

على سبيل المثال، لمطابقة جميع الطرق التي لا تنتهي بـ "ForTesting"، استخدِم القاعدة التالية:

-keepclassmembers class com.example.MyClass {
  *** !*ForTesting(...);
}

يمكن أيضًا نفي أنماط أسماء الأعضاء في الشرط المسبق -if للقواعد. إذا كان نمط اسم عنصر تم نفيه يحتوي على أحرف بدل، لا يمكن الرجوع إلى أحرف البدل هذه في قاعدة -if اللاحقة.

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

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

المشاكل التي تم إصلاحها
المكوّن الإضافي لنظام Gradle المتوافق مع Android
java.lang.ClassNotFoundException: لم يتم العثور على الفئة "com.android.tools.r8.RecordTag" بعد ترقية Gradle إلى الإصدار 9.2.0

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

المشاكل التي تم إصلاحها
المكوّن الإضافي لنظام Gradle المتوافق مع Android
تحذير المستخدمين إذا كان لديهم commonTest ولكنهم نسوا استخدام withHostTestBuilder
[fused lib - public] تتضمّن OkHttp المصادر
يتعذّر تشغيل androidDeviceTest مع عناصر نائبة في البيان في المكتبة (الإصدار 9.0.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android مع المكوّن الإضافي com.android.kotlin.multiplatform.library)
يجب أن يرسل AGP تحذيرًا إذا كان لدى المستخدم src/androidDeviceTest/java مع إيقاف Java.
الإصدار 9.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android لا يتضمّن androidComponents.onVariant مكافئًا لـ applicationVariants.all.mergeAssetsProvider
تحتوي ملفات ‎`*.xml.flat` على مسارات مطلقة للملفات
لم يتم تسجيل R8D8ThreadPoolBuildService
تعذُّر JdkImageTransform مع JDK 26
تشفير minAgpVersion تلقائيًا في البيانات الوصفية لملف AAR في الإصدار 10.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android"
إعادة تسمية حزمة APK باستخدام لغة DSL الجديدة في "مكوّن Android الإضافي لنظام Gradle"
حدث خطأ عند الوصول إلى bootClasspath (وليس تقييمه): IllegalStateException: لم يتم الانتهاء من targetCompatibility بعد
لا يعمل مصدر keepRules في مجموعات المصادر للمكتبات
تضمين بيان التوافق مع "التحكّم في المحتوى" في "متجر Google Play"
تعديل اعتمادية المكوّن الإضافي لنظام Gradle المتوافق مع Kotlin إلى الإصدار 2.3.10
السماح باستخدام compileSdk أعلى للاختبارات من الإصدار الرئيسي
Lint
خطأ إملائي في رسالة Lint
تم اقتطاع قدرة استيعاب السياق في تقارير Lint SARIF بسبب تعذُّر تحريك مؤشر الإزاحة في `SarifReporter.kt`
يفتقر عميل Lint Gradle إلى ميزة أساسية تجعله غير موثوق به في أحسن الأحوال
خطأ Lint عند إيقاف ميزة "تقليص الموارد"
يُبلغ الإصدار 9 من AGP عن الخطأ WrongConstant عند استخدام ثوابت IntDef متداخلة
خطأ Lint عند إيقاف ميزة "تقليص الموارد"
دمج Lint
تعذُّر تنفيذ Android Lint مع عمليات فحص Lint المخصّصة التي تم تجميعها في الرمز الثانوي Java 21
تتجاهل مهام Lint Gradle العلامة --quiet
Shrinker (R8)
يبدو أنّ استهداف Java 11 يؤدي إلى حدوث خطأ في d8