الإصدار 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 غير المتوافقة مع المشروع، لأنّه يتوفّر مصدر واحد للبيانات لإصدار Gradle JDK الذي تختاره.

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

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

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

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

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

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

المشاكل التي تم إصلاحها
المكوّن الإضافي لنظام Gradle المتوافق مع Android
يجب أن تنشئ أنواع المصادر المخصّصة مجموعات مصادر متعددة النكهات
لا يتحكّم التحقّق من إصدار حزمة تطوير البرامج (SDK) في مستخدمي إضافات حزمة تطوير البرامج (SDK)
يحتاج DependenciesInfoBuilder إلى تحديث واجهة برمجة التطبيقات والمستند
تعذُّر استخدام DexingNoClasspathTransform (minSdk >= 24) مع Java 11 بسبب عدم توفّر أعضاء متداخلين
‫DslExtension.Builder.extendProjectWith() لا تعمل على النحو الموضّح في Groovy
إضافة واجهة برمجة التطبيقات VariantSelector.withFlavor التي لا تستخدم kotlin.Pair
يحدث خطأ في ذاكرة التخزين المؤقت لـ AndroidLintAnalysisTask (:lintAnalyzeExternalRelease) لأنّ ملف `proguard.txt` قد تغيّر
تحتوي ملفات بيان التطبيق المدمجة على سمات extractNativeLibs وuseEmbeddedDex من الاعتماديات
تعذُّر استخدام AIDL مع أدوات الإنشاء 33.0.0
المكوّن الإضافي لنظام Gradle المتوافق مع Android: عرض مسار أداة AIDL وملف AIDL للإطار كواجهة برمجة تطبيقات عامة
طلب: السماح لبيئة التطوير المتكاملة باقتراح حلّ للمشكلة "يتطلّب PermittedSubclasses استخدام ASM9"
استخدام رمز بايت الهدف 17 عند تجميع المكوّن الإضافي لنظام Gradle المتوافق مع Android
إزالة VariantManager.getModifiedName
‫AndroidTest.packaging.jniLibs.keepDebugSymbols لا يؤثر في تجميع حزمة androidTest
تتوقف مهام اختبار لقياس حالة التطبيق GMD، وتبدأ في الفشل عند إعادة المحاولة
تستخدم generateLocaleConfig في الإصدار 8.1.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android ترتيبًا غير محدّد، ما يؤدي إلى تعطُّل عمليات الإنشاء القابلة للتكرار
يحتوي ProcessApplicationManifest.navigationJsons على ملفات تتضمّن مسارات مطلقة
لا يُسمح بالوصول إلى GradleBuildProject.Builder من خلال AnalyticsConfiguratorService بعد إنشاء AnalyticsService
‫AndroidTest.packaging.jniLibs.keepDebugSymbols لا يؤثر في تجميع حزمة androidTest
السماح بالتجميع لقيم الألوان غير الصالحة
قيمة "ReplaceWith" غير صحيحة لـ VariantBuilder
يؤدي Gradle 8.1 إلى تعطُّل التخزين المؤقت للإعدادات بسبب ‎ .gradle/.android/analytics.settings
لا تستخدم رسائل الإيقاف `ReplaceWith`
عرض طريقة للحصول على إصدار NDK التلقائي
يتطلّب المكوّن الإضافي لنظام Gradle المتوافق مع Android استخدام Java 17 لتشغيله.
عدم التوافق بين ASM Transform وtoAppend()
إصلاح أخطاء Lint عند تشغيل أداة Lint مع K2 UAST من خلال Gradle على مشروع KMP
إتاحة استخدام missingDimensionStrategy على مستوى المتغيّر، وربما مطابقة نوع التصميم/صيغة matchingFallback
تمت إزالة `android.injected.studio.version` في الإصدار Giraffe من "استوديو Android"
إضافة إمكانية إيقاف AndroidXDependencyCheck
تستخدم generateLocaleConfig في الإصدار 8.1.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android ترتيبًا غير محدّد، ما يؤدي إلى تعطُّل عمليات الإنشاء القابلة للتكرار
الإعلان عن متطلبات إصدارَي R8 وD8 في البيانات الوصفية لملف AAR (مثل coreLibraryDesugaring وnew API out-of-lining)
تحذير المزامنة: "يجب عدم الوصول إلى GradleBuildProject.Builder من خلال AnalyticsConfiguratorService بعد إنشاء AnalyticsService"
التحديث إلى الإصدار 8.2 من Gradle أو الإصدار المرشّح للإصدار
يتعذّر الوصول إلى "java.lang.Comparable"
‫androidResources غير متاح في وحدة مكتبة Android
تعذُّر تنفيذ المهمة ‎:app:mergeReleaseClasses بعد تحديث المكوّن الإضافي لنظام Gradle المتوافق مع Android من الإصدار 8.0.2 إلى 8.1.0
يؤدي Gradle 8.1 إلى تعطُّل التخزين المؤقت للإعدادات بسبب ‎ .gradle/.android/analytics.settings
[الإصدار 8.1.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android] يتعذّر تنفيذ ‎./gradlew test بسبب "تعذُّر العثور على ناتج البيان" إذا كانت كلّ من splits.abi.isEnable وtestOptions.unitTests.isIncludeAndroidResources صحيحة
لا يراعي الإصدار Giraffe من "استوديو Android" السمة versionCodeOverride مع الإصدار 8.1 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
يزيل الإصدار 8.1.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android تثبيت التطبيق بعد تشغيل الاختبارات التي تم قياسها، بينما لا يفعل الإصدار 7.4.2 ذلك
يؤدي تحويل ملف APK إلى حدوث خطأ في ListingFileRedirectTask
تراجع في الإصدار Hedgehog: يتأخر ظهور زر "تشغيل" لبضع ثوانٍ (إنشاء المواصفات)
أداة إنشاء ملفات dex (D8)
تفعيل السجلات الأصلية والفئات المحكمة عند إنشاء ملفات dex للإصدار 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
خطأ أداة Lint في DuplicatePlatformClasses من اعتمادية testImplementation
أداة التصغير (R8)
‫java.lang.VerifyError: Verifier rejected class
تتوقف عملية الإنشاء عند ‎ :minifyReleaseWithR8 عند استخدام مكتبة Apache POI
يؤدي Kotlin 1.9 إلى إتلاف دوال Kotlin lambda من قِبل R8 إذا تمت إزالة عمليات التحقّق من القيم الخالية