الإصدار 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 library غير متوافق مع الإصدارات السابقة من R8
هل يتم تشغيل التحسينات حتى عند استخدام D8 فقط؟
أداة تقليل حجم الرمز (R8)
[R8 8.3.21] الإصدار 8.3.21 من R8 أكبر بمقدار 1.57 ميغابايت من الإصدار 8.1.56 من R8
‫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 الخاص بإطار العمل كواجهة برمجة تطبيقات عامة
طلب: السماح لبيئة التطوير المتكاملة (IDE) باقتراح حلّ للمشكلة "يتطلّب PermittedSubclasses استخدام ASM9"
استهداف الرمز الثانوي 17 عند تجميع المكوّن الإضافي لنظام Gradle المتوافق مع Android
إزالة VariantManager.getModifiedName
‫AndroidTest.packaging.jniLibs.keepDebugSymbols لا يؤثّر في تجميع حزمة الاختبار على Android
تتوقّف مهام اختبار لقياس حالة التطبيق في GMD، وتبدأ في الفشل عند إعادة المحاولة
تستخدم generateLocaleConfig في الإصدار 8.1.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android ترتيبًا غير محدّد، ما يؤدي إلى تعطُّل عمليات الإنشاء القابلة للتكرار
يحتوي ProcessApplicationManifest.navigationJsons على ملفات بمسارات مطلقة
لا يُسمح بالوصول إلى GradleBuildProject.Builder من خلال AnalyticsConfiguratorService بعد إنشاء AnalyticsService
‫AndroidTest.packaging.jniLibs.keepDebugSymbols لا يؤثّر في تجميع حزمة الاختبار على Android
السماح بالتجميع لقيم الألوان غير الصالحة
قيمة "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` في "استوديو Android Giraffe"
إضافة إمكانية إيقاف AndroidXDependencyCheck
تستخدم generateLocaleConfig في الإصدار 8.1.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android ترتيبًا غير محدّد، ما يؤدي إلى تعطُّل عمليات الإنشاء القابلة للتكرار
الإعلان عن متطلبات إصدارَي R8 وD8 في البيانات الوصفية لملف AAR (مثل coreLibraryDesugaring وnew API out-of-lining)
تحذير المزامنة: "يجب عدم الوصول إلى GradleBuildProject.Builder من خلال AnalyticsConfiguratorService بعد إنشاء AnalyticsService"
التحديث إلى الإصدار الرئيسي أو الإصدار المرشّح من Gradle 8.2
يتعذّر الوصول إلى '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 صحيحتَين
لا يراعي "استوديو Android Giraffe" قيمة 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
يشير الإصدار 1 من حزمة تصحيح Bumblebee 2021.1.1 إلى أنّ إصدارًا قديمًا (20030203.000550) من commons-io أحدث من الإصدار 2.11.0.
لا تزال الإصدارات التجريبية من Lint 8.2.0 لا تتيح استيراد الدوال ذات المستوى الأعلى في Kotlin
يشير الإصدار 1 من حزمة تصحيح Bumblebee 2021.1.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 إذا تمت إزالة عمليات التحقّق من القيم الخالية