الإصدار 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 daemon (عملية في الخلفية) لمشروعك. يتم تخزين اختيار المسار في الحقل java.home في الملف .gradle/config.properties. اضبط هذا الحقل من خلال إعدادات Gradle JDK في "استوديو Android": ملف (أو استوديو Android على نظام التشغيل macOS) > الإعدادات > الإنشاء والتنفيذ والنشر > أدوات الإنشاء > Gradle.

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

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

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

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

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

المشاكل التي تم إصلاحها
المكوّن الإضافي لنظام Gradle المتوافق مع Android
يجب أن تنشئ أنواع المصادر المخصّصة مجموعات مصادر متعددة النكهات
لا يتعامل التحقّق من إصدار حزمة تطوير البرامج (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 من أدوات الإنشاء
AGP: عرض مسار أداة AIDL وملف AIDL الخاص بإطار العمل كواجهة برمجة تطبيقات عامة
الطلب: السماح لبيئة التطوير المتكاملة (IDE) بتقديم حلّ لمشكلة "يتطلّب PermittedSubclasses الإصدار ASM9"
استهداف الرمز الثانوي 17 عند تجميع AGP
إزالة 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
إتاحة Variant level 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 بعد تحديث "مكوّن Android الإضافي Gradle" من الإصدار 8.0.2 إلى الإصدار 8.1.0
الإصدار 8.1 من Gradle يتسبّب في تعطُّل ميزة "التخزين المؤقت للإعدادات" بسبب الملف ‎ .gradle/.android/analytics.settings
[AGP 8.1.0] يتعذّر تنفيذ الأمر ‎./gradlew test ويظهر الخطأ "Unable to find manifest output" إذا كانت قيمة كلّ من splits.abi.isEnable وtestOptions.unitTests.isIncludeAndroidResources هي true
لا يلتزم الإصدار Giraffe من "استوديو Android" بالسمة versionCodeOverride عند استخدام الإصدار 8.1 من "مكوّن Android الإضافي لنظام Gradle"
يزيل الإصدار 8.1.0 من "مكوّن Android الإضافي لبرنامج Gradle" تثبيت التطبيق بعد تشغيل الاختبارات المزوّدة بأدوات، بينما لا يفعل الإصدار 7.4.2 ذلك
يؤدي تحويل حزمة APK إلى حدوث خطأ في ListingFileRedirectTask
HEDGEHOG REGRESSION: يتأخر زر التشغيل لبضع ثوانٍ (إنشاء مواصفات)
Dexer (D8)
تفعيل التسجيل الأصلي والفئات المحكمة عند تحويل الرموز البرمجية إلى ملفات dex لإصدار Android 14 والإصدارات الأحدث
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 Studio علامة غير صحيحة على الإصدار المحدّد تشير إلى أنّه قديم.
يتجاهل 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 إذا تمت إزالة عمليات التحقّق من القيم الخالية

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

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

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

المشاكل التي تم إصلاحها
المكوّن الإضافي لنظام Gradle المتوافق مع Android
يتعذّر ضبط إصدار JaCoCo في الإصدار 8.2.0 من "مكوّن Android الإضافي في Gradle"
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() قيمة فارغة