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

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

التوافق

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

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

وحدة ماكرو جديدة لتحديد مسار JDK

#GRADLE_LOCAL_JAVA_HOME هي وحدة ماكرو جديدة يمكنك استخدامها لتحديد مسار JDK. ويجعل ذلك من الآمن والأسهل تحديد مسار Java الرئيسي المستخدَم لتنفيذ عملية Gradle الخفية (عملية الخلفية) لمشروعك. يتم تخزين اختيار المسار في الحقل java.home في الملف .gradle/config.properties. اضبط هذا الحقل من خلال إعدادات Gradle JDK في "استوديو Android": ملف (أو استوديو Android على نظام التشغيل macOS) > الإعدادات > الإنشاء والتنفيذ والنشر > أدوات الإنشاء > Gradle.

ستستخدِم المشاريع الجديدة #GRADLE_LOCAL_JAVA_HOME تلقائيًا. سيتم تلقائيًا نقل المشاريع الحالية إلى الماكرو الجديد بعد إجراء مزامنة ناجحة، إلا إذا كنت تستخدم حاليًا ماكرو مثل #JAVA_HOME.

في ما يلي المزايا الرئيسية لوحدة الماكرو الجديدة:

  • يمكنك تعديل مسار JDK يدويًا لتفعيل المزامنة بدون فتح مشروعك أولاً.
  • تقليل الأخطاء المرتبطة بعدم توافق إصدارات Gradle وJDK الخاصة بالمشروع، وذلك لأنّه يتوفّر مصدر واحد للمعلومات بشأن اختيار JDK في Gradle

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

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

المشاكل التي تم إصلاحها
المكوّن الإضافي لنظام Gradle المتوافق مع Android
يتعذّر ضبط إصدار JaCoCo في الإصدار 8.2.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
Dexer (D8)
[desugared library] الإصدار 2.1 من desugared library غير متوافق مع الإصدارات السابقة من R8
هل يتم تنفيذ عمليات التحسين حتى مع D8 فقط؟
Shrinker (R8)
‫[R8 8.3.21] حجم الإصدار R8 8.3.21 أكبر من حجم الإصدار R8 8.1.56 بمقدار 1.57 ميغابايت
‫class.getInterfaces() تعرض قيمة فارغة

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

المشاكل التي تم إصلاحها
المكوّن الإضافي لنظام Gradle المتوافق مع Android
عدم تنفيذ مهمة dexing على فئات المشاريع الفرعية عندما تكون قد تم تحويلها إلى dex من خلال عمليات تحويل العناصر
تعذّر تشغيل المكوّن الإضافي لنظام Gradle المتوافق مع Android باستخدام الإصدار 11 من Java والإصدار التجريبي 21 من OpenJDK
Dexer (D8)
إزالة السكر من سجلات Android U
Shrinker (R8)
تنشئ R8 ملف dex تالفًا يؤدي إلى حدوث خطأ في تحويل النوع في وقت التشغيل
تسبّب أداة R8 في تغيير الواجهة إلى واجهة لا يمكن الوصول إليها
تعطُّل حزمة تطوير البرامج (SDK) من Flurry باستخدام R8 والإصدار 8.2.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
‫Android - R8 يتسبّب في تعطُّل الفئة الفرعية LinearLayoutManager
ClassCastException في R8 عند تفعيل إعادة التغليف وإيقاف تقليص حجم الرموز وإخفاء مفاتيح فك التشفير والتحسين
R8 stuck in BridgeAnalyzer.analyzeMethod
تعطُّل وقت التشغيل R8 v8.2.33 بسبب الخطأ "java.lang.VerifyError: Bad type on operand stack" بعد الترقية

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

المشاكل التي تم إصلاحها
المكوّن الإضافي لنظام Gradle المتوافق مع Android
يجب أن تنشئ أنواع المصادر المخصّصة مجموعات مصادر متعددة النكهات
لا يتعامل التحقّق من إصدار حزمة تطوير البرامج (SDK) مع مستخدمي إضافات حزمة تطوير البرامج
يجب تعديل واجهة برمجة التطبيقات الخاصة بـ DependenciesInfoBuilder وإضافة مستندات إليها
تعذُّر تنفيذ DexingNoClasspathTransform (minSdk >= 24) مع استهداف Java 11 بسبب عدم توفّر أعضاء متداخلين
لا تعمل الدالة DslExtension.Builder.extendProjectWith() على النحو الموضّح في Groovy
إضافة واجهة برمجة التطبيقات VariantSelector.withFlavor التي لا تستخدم kotlin.Pair
AndroidLintAnalysisTask (:lintAnalyzeExternalRelease) has a cache miss because `proguard.txt` has changed
يحتوي بيان التطبيق المدمج على السمتَين extractNativeLibs وuseEmbeddedDex من العناصر التابعة
تعذُّر تشغيل AIDL مع الإصدار 33.0.0 من أدوات الإنشاء
AGP: عرض مسار أداة AIDL وملف AIDL الخاص بإطار العمل كواجهة برمجة تطبيقات عامة
طلب: السماح لبيئة التطوير المتكاملة (IDE) بتقديم حلّ لمشكلة "يتطلّب PermittedSubclasses الإصدار ASM9"
استهداف الرمز الثانوي 17 عند تجميع "المكوّن الإضافي لنظام Gradle المتوافق مع Android"
إزالة VariantManager.getModifiedName
لا يؤثّر AndroidTest.packaging.jniLibs.keepDebugSymbols في عملية تجميع حِزم androidTest
تتوقف مهام اختبار GMD، وعند إعادة المحاولة تبدأ في التعذّر
تستخدم الدالة generateLocaleConfig في الإصدار 8.1.0 من "مكوّن Android الإضافي في Gradle" ترتيبًا غير حتمي، ما يؤدي إلى تعطيل عمليات الإنشاء القابلة للتكرار
يحتوي ProcessApplicationManifest.navigationJsons على ملفات ذات مسارات مطلقة
لا يُسمح بالوصول إلى GradleBuildProject.Builder من خلال AnalyticsConfiguratorService بعد إنشاء AnalyticsService
لا يؤثّر AndroidTest.packaging.jniLibs.keepDebugSymbols في عملية تجميع حِزم androidTest
يُسمح بالتجميع لقيم الألوان غير الصالحة
قيمة "ReplaceWith" غير صحيحة بالنسبة إلى VariantBuilder
الإصدار 8.1 من Gradle يتسبّب في تعطُّل ميزة "التخزين المؤقت للإعدادات" بسبب ملف ‎ .gradle/.android/analytics.settings
لا تستخدم رسائل الإيقاف نهائيًا السمة `ReplaceWith`
توفير طريقة للحصول على إصدار NDK التلقائي
يتطلّب المكوّن الإضافي لنظام Gradle المتوافق مع Android الإصدار 17 من Java لتشغيله.
عدم توافق ASM Transform وtoAppend()
إصلاح أخطاء LintErrors عند تشغيل Lint باستخدام K2 UAST من خلال Gradle في مشروع KMP
إتاحة استخدام missingDimensionStrategy على مستوى المتغير، وربما build type/flavor matchingFallback
تمت إزالة `android.injected.studio.version` في الإصدار Giraffe من "استوديو Android"
إضافة إمكانية إيقاف AndroidXDependencyCheck
تستخدم الدالة generateLocaleConfig في الإصدار 8.1.0 من "مكوّن Android الإضافي في Gradle" ترتيبًا غير حتمي، ما يؤدي إلى تعطيل عمليات الإنشاء القابلة للتكرار
الإعلان عن متطلبات إصدار R8 / D8 في البيانات الوصفية لملف AAR (مثل coreLibraryDesugaring وواجهة برمجة التطبيقات الجديدة خارج الخط)
تحذير المزامنة: "يجب عدم الوصول إلى GradleBuildProject.Builder من خلال AnalyticsConfiguratorService بعد إنشاء AnalyticsService"
التحديث إلى الإصدار الأولي أو المرشّح للإصدار من Gradle 8.2
يتعذّر الوصول إلى "java.lang.Comparable"
‫androidResources غير متوفّر في وحدة مكتبة Android
فشل تنفيذ المهمة ‎:app:mergeReleaseClasses بعد تحديث "المكوّن الإضافي لنظام Gradle المتوافق مع Android" من الإصدار 8.0.2 إلى الإصدار 8.1.0
الإصدار 8.1 من Gradle يتسبّب في تعطُّل ميزة "التخزين المؤقت للإعدادات" بسبب ملف ‎ .gradle/.android/analytics.settings
[الإصدار 8.1.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android] يتعذّر تنفيذ ./gradlew test ويظهر الخطأ "Unable to find manifest output" إذا كانت قيمتا كلّ من splits.abi.isEnable وtestOptions.unitTests.isIncludeAndroidResources صحيحة
لا يلتزم الإصدار Giraffe من "استوديو Android" بالسمة versionCodeOverride عند استخدام الإصدار 8.1 من "مكوّن Android الإضافي لنظام Gradle"
يزيل الإصدار 8.1.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" تثبيت التطبيق بعد تشغيل الاختبارات المبرمَجة، بينما لا يفعل الإصدار 7.4.2 ذلك
يؤدي تحويل حزمة APK إلى حدوث خطأ في ListingFileRedirectTask
HEDGEHOG REGRESSION: يتأخر زر التشغيل لبضع ثوانٍ (إنشاء مواصفات)
Dexer (D8)
تفعيل السجلات الأصلية والفئات المحكمة عند إنشاء ملفات DEX لإصدارات min-api 34 والإصدارات الأحدث
Lint
لا يتعامل فحص Lint الذي تم إنشاء مثيل له بشكل جيد مع AppComponentFactory
لا تتيح إصدارات Lint 8.2.0 الأولية استيراد الدوال ذات المستوى الأعلى في Kotlin.
إضافة خيار لعدم تضمين أرقام الأسطر والأعمدة في خط الأساس الخاص بأداة Lint
إضافة خيار لعدم تضمين أرقام الأسطر والأعمدة في خط الأساس الخاص بأداة Lint
لا تتوافق اختبارات Lint مع ميزات لغة Java 17
يُظهر الإصدار Bumblebee 2021.1.1 Patch 1 أنّ الإصدار القديم (20030203.000550) من commons-io أحدث من الإصدار 2.11.0.
لا تتيح إصدارات Lint 8.2.0 الأولية استيراد الدوال ذات المستوى الأعلى في Kotlin.
يُظهر الإصدار Bumblebee 2021.1.1 Patch 1 أنّ الإصدار القديم (20030203.000550) من commons-io أحدث من الإصدار 2.11.0.
يضع "استوديو Android" علامة غير صحيحة على الإصدار المحدّد تشير إلى أنّه قديم.
يتجاهل Lint مشكلة UseValueOf عند استخدام K2 UAST
مشاكل غير متوقّعة من مشروع آخر تم الإبلاغ عنها باستخدام Android Lint
تعذُّر تنفيذ أداة Android Lint على مكتبة KMP بسبب ظهور الخطأ `property 'variantInputs.name' doesn't have a configured value.`
دمج Lint
خطأ DuplicatePlatformClasses lint من تبعية testImplementation
Shrinker (R8)
java.lang.VerifyError: Verifier rejected class
تعذُّر إكمال عملية الإنشاء بسبب الخطأ :minifyReleaseWithR8 عند استخدام مكتبة Apache POI
الإصدار 1.9 من Kotlin يتسبّب في إتلاف تعبيرات lambda في Kotlin بواسطة R8 إذا تمت إزالة عمليات التحقّق من القيم الخالية