الإصدار 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 من المكوّن الإضافي لنظام Gradle المتوافق مع Android مهامًا لإنشاء لوحات بيانات بتنسيق HTML تجمع نتائج الاختبارات وبيانات التغطية من أنواع الاختبارات المختلفة (اختبارات الوحدات واختبارات الأجهزة)، والوحدات، ومتغيّرات الإصدار، ما يوفّر نظرة عامة شاملة في لوحة بيانات واحدة. لمزيد من المعلومات، اطّلِع على مقالتَي إنشاء تقارير موحّدة عن نسبة استخدام رموز الصفحة وعرض تقارير موحّدة عن الاختبارات.

تغييرات R8

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

دلالات أكثر صرامة للسمة -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: Didn't find class "com.android.tools.r8.RecordTag" after upgrading gradle to 9.2.0

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

المشاكل التي تم إصلاحها
المكوّن الإضافي لنظام Gradle المتوافق مع Android
Warn users if they have commonTest but forget withHostTestBuilder
[fused lib - public] OkHttp includes sources
Cannot run androidDeviceTest with manifest placeholders in library (AGP 9.0.0 with com.android.kotlin.multiplatform.library plugin)
AGP should warn if user has src/androidDeviceTest/java with java disabled
AGP 9.0 No androidComponents.onVariant equivalent for applicationVariants.all.mergeAssetsProvider
`*.xml.flat` files contain absolute file paths
R8D8ThreadPoolBuildService not registered
JdkImageTransform failure with JDK 26
Automatically encode minAgpVersion in the AAR metadata in AGP 10.0
Renaming APK using new AGP DSL
Error when accessing (but not evaluating) bootClasspath IllegalStateException: targetCompatibility is not yet finalized
keepRules sourceset not working for libraries
Embed CC compatibility declaration in AGP
Update Kotlin Gradle plugin dependency to 2.3.10
Allow higher compileSdk for tests than main
أداة Lint
Lint typo in message
Truncated context window in Lint SARIF reports due to stuck offset pointer in `SarifReporter.kt`
Lint Gradle client is missing a critical feature making it unreliable at best
Lint error when resource shrinking is disabled
AGP 9 Lint reports WrongConstant when using nested IntDef constants
Lint error when resource shrinking is disabled
التكامل مع أداة Lint
Android Lint fails with custom lint checks compiled to Java 21 bytecode
Lint Gradle tasks ignore --quiet flag
أداة تقليل حجم الرموز البرمجية (R8)
Targeting Java 11 seems to break d8