الإصدار 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
. اضبط هذا الحقل من خلال إعدادات JDK في Gradle في "استوديو Android": ملف (أو
استوديو Android على نظام التشغيل macOS) > الإعدادات > الإنشاء والتنفيذ والنشر >
أدوات الإنشاء > Gradle.
ستستخدم المشاريع الجديدة #GRADLE_LOCAL_JAVA_HOME
تلقائيًا. سيتم نقل المشاريع الحالية
تلقائيًا إلى وحدة الماكرو الجديدة بعد إجراء عملية مزامنة ناجحة ما لم يكن
لديك وحدة ماكرو مثل #JAVA_HOME
.
في ما يلي المزايا الرئيسية للوحدات الضخمة الجديدة:
- يمكنك تعديل مسار JDK يدويًا لبدء المزامنة بدون فتح
مشروعك أولاً.
- عدد أخطاء أقلّ مرتبطة بإصدارات Gradle وJDK غير المتوافقة للمشروع، لأنّه
يتوفّر مصدر واحد للحقائق لاختيار JDK في Gradle.
المشاكل التي تم إصلاحها
الإصدار 8.2.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
المشاكل التي تم إصلاحها |
مكوّن إضافي لنظام Gradle المتوافق مع Android |
يجب أن تُنشئ أنواع المصادر المخصّصة مجموعات مصادر متعددة النكهات.
|
لا يتعامل التحقّق من إصدار حزمة SDK مع مستخدمي إضافات حزمة SDK.
|
يحتاج DependenciesInfoBuilder إلى تحديث واجهة برمجة التطبيقات والمستند
|
تعذُّر DexingNoClasspathTransform (minSdk >= 24) مع استهداف Java 11 بسبب عدم توفّر أعضاء Nest
|
لا تعمل دالة DslExtension.Builder.extendProjectWith() على النحو الموضّح في Groovy
|
أضِف واجهة برمجة التطبيقات VariantSelector.withFlavor التي لا تستخدِم kotlin.Pair.
|
حدث خطأ في ذاكرة التخزين المؤقت لـ AndroidLintAnalysisTask ( :lintAnalyzeExternalRelease) بسبب تغيير ملف proguard.txt
|
يحتوي بيان التطبيق المدمج على سمتَي extractNativeLibs وuseEmbeddedDex من العناصر المُعتمدة.
|
تعذُّر إنشاء حِزم AIDL باستخدام الإصدار 33.0.0 من حِزم أدوات الإنشاء
|
AGP: عرض مسار أداة AIDL وملف AIDL للإطار كواجهة برمجة تطبيقات عامة
|
الطلب: السماح لبيئة تطوير البرامج (IDE) بتقديم حلّ لخطأ "تتطلّب فئات فرعية مسموح بها استخدام ASM9"
|
استهدِف الرمز البرمجي الثانوي 17 عند تجميع AGP.
|
إزالة VariantManager.getModifiedName
|
لا يؤثّر AndroidTest.packaging.jniLibs.keepDebugSymbols في تغليف androidTest
|
تعليق مهام اختبار أداة قياس حالة التطبيق (GMD) وبدء التوقّف عن العمل عند إعادة المحاولة
|
تستخدِم دالة generateLocaleConfig في الإصدار 8.1.0 من agp ترتيبًا غير محدّد، ما يؤدي إلى إيقاف عمليات إنشاء الإصدارات القابلة للتكرار.
|
يحتوي ProcessApplicationManifest.navigationJsons على ملفات تتضمّن مسارات مطلقة.
|
لا يُسمح بالوصول إلى GradleBuildProject.Builder من خلال AnalyticsConfiguratorService بعد إنشاء AnalyticsService.
|
لا يؤثّر AndroidTest.packaging.jniLibs.keepDebugSymbols في تغليف androidTest
|
السماح بتجميع قيم الألوان غير القانونية
|
قيمة "ReplaceWith" غير صحيحة لفئة VariantBuilder
|
يؤدي الإصدار 8.1 من Gradle إلى إيقاف ميزة التخزين المؤقت للإعدادات بسبب ملف .gradle/.android/analytics.settings
|
لا تستخدم رسائل الإيقاف النهائي العنصر ReplaceWith.
|
توفير طريقة للحصول على إصدار NDK التلقائي
|
يتطلب المكوّن الإضافي لنظام Gradle المتوافق مع Android تشغيل Java 17.
|
عدم توافق ASM Transform وtoAppend()
|
إصلاح أخطاء Lint عند تشغيل Lint مع K2 UAST عبر Gradle في مشروع KMP
|
إتاحة استخدام missingDimensionStrategy على مستوى الصيغة، وربما Fallback المطابق لنوع/نمط الإصدار
|
تمت إزالة android.injected.studio.version في الإصدار Giraffe من "استوديو Android"
|
إضافة إمكانية إيقاف AndroidXDependencyCheck
|
تستخدِم دالة generateLocaleConfig في الإصدار 8.1.0 من agp ترتيبًا غير محدّد، ما يؤدي إلى إيقاف عمليات إنشاء الإصدارات القابلة للتكرار.
|
عرض متطلبات إصدار R8 / D8 في البيانات الوصفية لملف AAR (مثلاً لـ coreLibraryDesugaring وواجهة برمجة التطبيقات الجديدة غير المضمّنة)
|
تحذير بشأن المزامنة: "يجب عدم الوصول إلى GradleBuildProject.Builder من خلال AnalyticsConfiguratorService بعد إنشاء AnalyticsService"
|
التحديث إلى إصدار Gradle 8.2 العلني أو الإصدار القابل للمراجعة
|
لا يمكن الوصول إلى java.lang.Comparable
|
لا تتوفّر androidResources في وحدة مكتبة Android.
|
تعذّر تنفيذ المهمة ":app:mergeReleaseClasses" بعد تحديث AGP من الإصدار 8.0.2 إلى الإصدار 8.1.0
|
يؤدي الإصدار 8.1 من Gradle إلى إيقاف ميزة التخزين المؤقت للإعدادات بسبب ملف .gradle/.android/analytics.settings
|
[AGP 8.1.0] تعذّر تنفيذ الأمر ./gradlew test وظهور الرسالة "تعذّر العثور على ناتج البيان" إذا كانت كل من القيمتَين splits.abi.isEnable وtestOptions.unitTests.isIncludeAndroidResources صحيحتَين
|
لا يحترم الإصدار Giraffe من "استوديو Android" الإعداد versionCodeOverride مع AGP 8.1
|
يؤدي الإصدار 8.1.0 من AGP إلى إلغاء تثبيت التطبيق بعد تشغيل الاختبارات المستندة إلى الأدوات، في حين لا يؤدي الإصدار 7.4.2 إلى ذلك.
|
يؤدي تحويل حزمة APK إلى حدوث خطأ في ListingFileRedirectTask
|
HEDGEHOG REGRESSION: Run button is delayed by a few seconds (Creating spec)
|
|
Dexer (D8) |
تفعيل فئات "التسجيل الأصلي" و"الفئات المُغلقة" عند تحويل التطبيق إلى ملف APK لنظام التشغيل Android 34 أو الإصدارات الأحدث
|
|
Lint |
لا يعالج فحص Lint الذي تم إنشاؤه على الفور AppComponentFactory بشكل جيد.
|
لا تزال الإصدارات التجريبية من Lint 8.2.0 لا تتيح استيراد الدوالّ من المستوى الأعلى في kotlin.
|
إضافة خيار لعدم تضمين أرقام الأسطر والأعمدة في قاعدة بيانات التدقيق
|
إضافة خيار لعدم تضمين أرقام الأسطر والأعمدة في قاعدة بيانات التدقيق
|
لا تتوافق اختبارات 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 التي تحتوي على السمة "لا تتوفّر قيمة محدّدة للسمة variantInputs.name".
|
|
دمج Lint |
خطأ في أداة lint بسبب DuplicatePlatformClasses من تبعية testImplementation
|
|
Shrinker (R8) |
java.lang.VerifyError: Verifier rejected class
|
يتعذّر إكمال عملية الإنشاء عند الوصول إلى :minifyReleaseWithR8 عند استخدام مكتبة Apache POI
|
تؤدي الإصدار 1.9 من Kotlin إلى أن يزيل R8 دالات Kotlin lambda في حال إزالة عمليات التحقّق من القيمة الخالية.
|
|
الإصدار 8.2.1 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
المشاكل التي تم إصلاحها |
مكوّن إضافي لنظام Gradle المتوافق مع Android |
عدم تنفيذ مهمة تحويل DEX على فئات المشاريع الفرعية عندما تكون قد تم تحويلها من خلال عمليات تحويل العناصر
|
تعذّر استخدام "المكوّن الإضافي لنظام Gradle المتوافق مع Android" مع JavaVersion.VERSION_11 وOpenJDK 21 ea
|
|
Dexer (D8) |
إزالة الترميز السكري للسجلات في نظام التشغيل Android U
|
|
Shrinker (R8) |
يُنشئ R8 ملف dex تالفًا يؤدي إلى حدوث استثناء في تحويل الفئة أثناء التشغيل.
|
R8 causing interface change to inaccessible interface
|
تعطُّل حزمة تطوير البرامج (SDK) Flurry R8 مع AGP 8.2.0
|
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 في AGP 8.2.0
|
|
Dexer (D8) |
[desugared library] الإصدار 2.1 من مكتبة desugared غير متوافق مع الإصدارات السابقة من R8
|
هل يتم إجراء التحسينات حتى باستخدام D8 فقط؟
|
|
Shrinker (R8) |
[R8 8.3.21] حجم الإصدار R8 8.3.21 أكبر من الإصدار R8 8.1.56 بمقدار 1.57 ميغابايت
|
class.getInterfaces() تُعرِض قيمة فارغة
|
|
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-02-28 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-02-28 (حسب التوقيت العالمي المتفَّق عليه)"],[],[]]