تحتوي هذه الصفحة على ملاحظات الإصدار للإصدارات التجريبية من المكوّن الإضافي لنظام Gradle المتوافق مع Android (AGP).
الإصدار 9.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
الإصدار 9.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android هو إصدار رئيسي جديد من هذا المكوّن، ويتضمّن تغييرات في واجهة برمجة التطبيقات والسلوك.
لتحديث المكوّن الإضافي لنظام Gradle المتوافق مع Android إلى الإصدار 9.0.0-alpha10، استخدِم مساعد ترقية المكوّن الإضافي لنظام Gradle المتوافق مع Android في الإصدار Android Studio Otter | 2025.2.1.
يساعد "مساعد ترقية" Android Gradle Plugin في الحفاظ على السلوكيات الحالية عند ترقية مشروعك عند الحاجة، ما يتيح لك ترقية مشروعك لاستخدام الإصدار 9.0 من Android Gradle Plugin، حتى إذا لم تكن مستعدًا لاستخدام جميع الإعدادات التلقائية الجديدة في الإصدار 9.0 من Android Gradle Plugin.
التوافق
الحدّ الأقصى لمستوى واجهة برمجة التطبيقات في Android الذي يتيحه الإصدار 9.0.0-alpha10 من المكوّن الإضافي لنظام Gradle المتوافق مع Android هو المستوى 36 من واجهة برمجة التطبيقات.
يتطلّب الإصدار 9.0.0-alpha10 من المكوّن الإضافي لنظام Gradle المتوافق مع Android استخدام الإصدار 9.0.0 من Gradle.
الحد الأدنى للإصدار | الإصدار التلقائي | الملاحظات | |
---|---|---|---|
Gradle | 9.0.0 | 9.0.0 | لمزيد من المعلومات، اطّلِع على تحديث Gradle. |
أدوات تصميم حزمة تطوير البرامج (SDK) | 36.0.0 | 36.0.0 | ثبِّت أو اضبط أدوات تصميم حزمة تطوير البرامج (SDK). |
NDK | لا ينطبق | 28.2.13676358 | ثبِّت أو اضبط إصدارًا مختلفًا من NDK. |
JDK | 17 | 17 | لمزيد من المعلومات، يُرجى الاطّلاع على ضبط إصدار JDK. |
إنّ فئات android
DSL تنفّذ الآن الواجهات العامة الجديدة فقط
على مدار السنوات العديدة الماضية، طرحنا
واجهات جديدة للغة DSL وواجهة برمجة التطبيقات من أجل
التحكّم بشكل أفضل في واجهات برمجة التطبيقات المتاحة للجميع. كانت إصدارات AGP 7.x و8.x لا تزال تستخدم أنواع DSL القديمة (مثل BaseExtension
) التي كانت تنفّذ أيضًا الواجهات العامة الجديدة، وذلك للحفاظ على التوافق أثناء تقدّم العمل على الواجهات.
يستخدم الإصدار 9.0 من "مكوّن Android الإضافي لنظام Gradle" واجهات DSL الجديدة فقط، وتم تغيير عمليات التنفيذ إلى أنواع جديدة مخفية بالكامل. يؤدي هذا التغيير أيضًا إلى إزالة إذن الوصول إلى واجهة برمجة التطبيقات القديمة والمتوقفة نهائيًا الخاصة بأسعار المنتجات المتغيرة.
للتحديث إلى الإصدار 9.0 من "مكوّن Android الإضافي لبرنامج Gradle"، قد تحتاج إلى إجراء ما يلي:
- تأكَّد من أنّ مشروعك متوافق مع Kotlin المضمّن: لا يتوافق المكوّن الإضافي
org.jetbrains.kotlin.android
مع لغة DSL الجديدة. تبديل مشاريع KMP إلى المكوّن الإضافي لمكتبة Android Gradle المتوافق مع KMP: لا يتوافق استخدام المكوّن الإضافي
org.jetbrains.kotlin.multiplatform
في المشروع الفرعي نفسه في Gradle مع المكوّنين الإضافيينcom.android.library
وcom.android.application
مع لغة DSL الجديدة.تعديل ملفات الإصدار: على الرغم من أنّ الهدف من تغيير الواجهات هو الحفاظ على تشابه لغة DSL قدر الإمكان، قد تحدث بعض التغييرات الصغيرة.
عدِّل منطق الإصدار المخصّص للإشارة إلى لغة DSL وواجهة برمجة التطبيقات الجديدتين: استبدِل أي إشارات إلى لغة DSL الداخلية بواجهات DSL العامة. في معظم الحالات، سيكون هذا الاستبدال واحدًا مقابل واحد. استبدِل أي استخدام لواجهة برمجة التطبيقات
applicationVariants
وواجهات برمجة التطبيقات المشابهة بواجهة برمجة التطبيقات الجديدةandroidComponents
. قد يكون ذلك أكثر تعقيدًا، لأنّ واجهة برمجة التطبيقاتandroidComponents
مصمَّمة لتكون أكثر استقرارًا من أجل الحفاظ على توافق المكوّنات الإضافية لفترة أطول. يمكنك الاطّلاع على وصفات Gradle للحصول على أمثلة.تحديث المكوّنات الإضافية التابعة لجهات خارجية: قد تعتمد بعض المكوّنات الإضافية التابعة لجهات خارجية على واجهات أو واجهات برمجة تطبيقات لم يعُد يتم عرضها. انتقِل إلى إصدارات من هذه المكوّنات الإضافية متوافقة مع الإصدار 9.0 من AGP.
يمنع التبديل إلى واجهات DSL الجديدة المكوّنات الإضافية وبرامج Gradle النصية للإنشاء من استخدام واجهات برمجة التطبيقات المتوقّفة نهائيًا، بما في ذلك:
واجهة برمجة التطبيقات المتوقّفة نهائيًا في الحزمة android |
الوظيفة | الاستبدال |
---|---|---|
applicationVariants وlibraryVariants وtestVariants وunitTestVariants
|
نقاط الإضافة التي يمكن للمكوّنات الإضافية استخدامها لإضافة وظائف جديدة إلى "مكوّن Android الإضافي في Gradle" |
استبدِلها بواجهة برمجة التطبيقات
androidComponents.onVariants
، على سبيل المثال:
androidComponents { onVariants() { variant -> variant.signingConfig .enableV1Signing.set(false) } } |
variantFilter
|
تتيح إيقاف الصيغ المحدّدة. |
استبدِلها بواجهة برمجة التطبيقات
androidComponents.beforeVariants
، على سبيل المثال:
androidComponents { beforeVariants( selector() .withBuildType("debug") .withFlavor("color", "blue") ) { variantBuilder -> variantBuilder.enable = false } } |
deviceProvider وtestServer
|
تسجيل بيئات اختبار مخصّصة لإجراء الاختبارات على أجهزة Android والمحاكيات | انتقِل إلى الأجهزة المُدارة من Gradle. |
sdkDirectory وndkDirectory وbootClasspath وadbExecutable وadbExe
|
استخدام مكوّنات مختلفة من حزمة تطوير البرامج (SDK) لنظام التشغيل Android لتنفيذ مهام مخصّصة |
التبديل إلى
androidComponents.sdkComponents
|
registerArtifactType وو registerBuildTypeSourceProvider وو registerProductFlavorSourceProvider وو registerJavaArtifact وو registerMultiFlavorSourceProvider وو wrapJavaSourceSet |
وظائف قديمة مرتبطة في الغالب بمعالجة المصادر التي تم إنشاؤها في "استوديو Android"، والتي توقّفت عن العمل في الإصدار 7.2.0 من "مكوّن Android الإضافي لبرنامج Gradle" | لا يتوفّر بديل مباشر لواجهات برمجة التطبيقات هذه. |
إذا تم التحديث إلى الإصدار 9.0 من "مكوّن Android الإضافي لنظام Gradle" وظهرت رسالة الخطأ التالية، يعني ذلك أنّ مشروعك لا يزال يشير إلى بعض الأنواع القديمة:
java.lang.ClassCastException: class com.android.build.gradle.internal.dsl.ApplicationExtensionImpl$AgpDecorated_Decorated
cannot be cast to class com.android.build.gradle.BaseExtension
إذا تم حظرك بسبب مكوّنات إضافية غير متوافقة تابعة لجهات خارجية، يمكنك إيقافها واستعادة عمليات التنفيذ القديمة للغة DSL، بالإضافة إلى واجهة برمجة التطبيقات القديمة الخاصة بالمتغيرات.
أثناء إجراء ذلك، ستتوفّر الواجهات الجديدة أيضًا، وسيظل بإمكانك تعديل منطق الإصدار الخاص بك إلى واجهة برمجة التطبيقات الجديدة. لإيقاف هذه الميزة، أدرِج السطر التالي في ملف gradle.properties
:
android.newDsl=false
يمكنك أيضًا البدء في الترقية إلى واجهات برمجة التطبيقات الجديدة قبل الترقية إلى الإصدار 9.0 من "مكوّن Android الإضافي في Gradle". تتوفّر الواجهات الجديدة في العديد من إصدارات "مكوّن Android الإضافي في Gradle"، لذا يمكنك استخدام مزيج من الواجهات الجديدة والقديمة. تعرض مستندات مرجع واجهة برمجة التطبيقات AGP مساحة واجهة برمجة التطبيقات لكل إصدار من AGP، وتاريخ إضافة كل فئة وطريقة وحقل.
خلال مرحلة الإصدار الأوّلي من الإصدار 9.0، سنتواصل مع مطوّري الإضافات لمساعدتهم في تعديل إضافاتهم وإصدارها لتكون متوافقة تمامًا مع الأوضاع الجديدة، وسنحسّن "مساعد ترقية Android Gradle" في "استوديو Android" لإرشادك خلال عملية نقل البيانات.
إذا تبيّن لك أنّ لغة DSL الجديدة أو Variant API لا تتضمّنان إمكانات أو ميزات، يُرجى تسجيل مشكلة في أقرب وقت ممكن.
Kotlin المضمَّنة
يتضمّن الإصدار 9.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android إمكانية مدمجة لتجميع لغة Kotlin، ما يحلّ محل المكوّن الإضافي للغة Kotlin الذي يتم تطبيقه بشكل منفصل. ويؤدي ذلك إلى تبسيط عملية الدمج مع "مكوّن Android Gradle الإضافي"، وتجنُّب استخدام واجهات برمجة التطبيقات المتوقّفة نهائيًا، وتحسين الأداء في بعض الحالات.
يحتوي الإصدار 9.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android على تبعية وقت التشغيل للمكوّن الإضافي لنظام Gradle المتوافق مع Kotlin 2.2.10، وهو الحد الأدنى للإصدار المطلوب لتوفير دعم مدمج للغة Kotlin.
توفّر لغة Kotlin المضمّنة في الإصدار 9.0 من "مكوّن Android الإضافي لبرنامج Gradle" إمكانية استخدام بيئة التطوير المتكاملة (IDE) في "استوديو Android" بشكل كامل مع test-fixtures.
لتجربة ذلك، استخدِم الإصدار 9.0.0-alpha07
من "مكوّن Android Gradle الإضافي" أو إصدارًا أحدث.
يمكنك إيقاف استخدام Kotlin المضمّنة من خلال ضبط
android.builtInKotlin=false
.
إذا اخترت عدم استخدام Kotlin المضمّنة وكنت بحاجة أيضًا إلى استخدام إصدار قديم من المكوّن الإضافي لنظام Gradle المتوافق مع Kotlin، يمكنك فرض الرجوع إلى إصدار أقدم باتّباع الخطوات التالية:
buildscript {
dependencies {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") {
version { strictly("2.0.0") } // or another version that you want to use
}
}
}
تغييرات السلوك
يتضمّن الإصدار 9.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android السلوكيات الجديدة التالية:
السُلوك | الاقتراح |
---|---|
يستخدم الإصدار 9.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android الإصدار r28c من NDK تلقائيًا.
|
ننصحك بتحديد إصدار NDK الذي تريد استخدامه بشكل صريح. |
يتطلّب الإصدار 9.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android تلقائيًا أن يستخدم مستهلكو المكتبة الإصدار نفسه أو إصدارًا أحدث من حزمة SDK الخاصة بالتجميع. |
استخدِم حزمة SDK للتدوين نفسها أو حزمة أحدث عند استخدام مكتبة.
إذا لم يكن ذلك ممكنًا، أو إذا أردت منح مستخدمي المكتبة التي تنشرها وقتًا أطول للتبديل، اضبط قيمة AarMetadata.minCompileSdk بشكل صريح.
|
يتضمّن الإصدار 9.0 من "مكوّن Android الإضافي في Gradle" تعديلات على الإعدادات التلقائية لخصائص Gradle التالية. يمنحك ذلك خيار الحفاظ على سلوك الإصدار 8.13 من "منصة Google للتسويق" عند الترقية:
الخاصية | الوظيفة | التغيير من الإصدار 8.13 إلى الإصدار 9.0 من "مكوّن Android الإضافي في Gradle" | الاقتراح |
---|---|---|---|
android.newDsl |
استخدِم واجهات DSL الجديدة بدون عرض عمليات التنفيذ القديمة لكتلة android .يعني ذلك أيضًا أنّه لم يعُد بالإمكان الوصول إلى واجهة برمجة التطبيقات القديمة الخاصة ببيانات المنتج المتغيرة، مثل android.applicationVariants .
|
false ← true |
يمكنك إيقاف هذا الخيار من خلال ضبط
android.newDsl=false .بعد التأكّد من توافق جميع المكوّنات الإضافية ومنطق الإنشاء الذي يستخدمه مشروعك، يمكنك إزالة خيار إيقاف الميزة. |
android.builtInKotlin |
تم تفعيل إمكانية تجميع رموز Kotlin البرمجية مباشرةً في المكوّن الإضافي لنظام Gradle المتوافق مع Android، بدون المكوّن الإضافي org.jetbrains.kotlin.android .
|
false ← true |
استخدِم Kotlin المضمّنة من خلال إزالة استخدام المكوّن الإضافي org.jetbrains.kotlin.android إذا كان ذلك ممكنًا.
إذا لم يكن كذلك، يمكنك إيقافه من خلال ضبط android.builtInKotlin=false
|
android.uniquePackageNames |
يفرض أن يكون لكل مكتبة اسم حزمة مميز. | false ← true |
حدِّد أسماء حِزم فريدة لجميع المكتبات ضِمن مشروعك. إذا لم يكن ذلك ممكنًا، يمكنك إيقاف هذه العلامة أثناء نقل البيانات. |
android.dependency.useConstraints |
تتحكّم هذه السمة في استخدام قيود التبعية بين عمليات الإعداد. الإعداد التلقائي في الإصدار 9.0 من "مكوّن Android الإضافي في Gradle" هو false الذي يستخدم القيود فقط في اختبارات أجهزة التطبيق (AndroidTest).
سيؤدي ضبط هذا الخيار على true إلى الرجوع إلى السلوك السابق في الإصدار 8.13.
|
true ← false |
لا تستخدِم قيود التبعية في كل مكان ما لم تكن بحاجة إليها. يؤدي قبول القيمة التلقائية الجديدة لهذا الخيار إلى تفعيل عمليات التحسين في عملية استيراد المشاريع، ما يؤدي إلى تقليل وقت الاستيراد لعمليات الإنشاء التي تتضمّن العديد من المشاريع الفرعية لمكتبة Android. |
aandroid.enableAppCompileTimeRClass |
تجميع الرموز البرمجية في التطبيقات مع فئة R غير نهائية، ما يؤدي إلى
تجميع التطبيقات بشكل متوافق مع تجميع المكتبات يؤدي ذلك إلى تحسين الزيادة ويُمهّد الطريق لإجراء تحسينات مستقبلية على الأداء في ما يتعلّق بتدفق معالجة الموارد. |
false ← true |
يمكن للعديد من المشاريع اعتماد السلوك الجديد بدون إجراء أي تغييرات على المصدر. إذا تم استخدام حقول الفئة R في أي مكان يتطلّب قيمة ثابتة، مثل حالات التبديل، أعِد تصميم الرمز البرمجي لاستخدام عبارات if متسلسلة. |
android.sdk.defaultTargetSdkToCompileSdkIfUnset |
يستخدم إصدار حزمة SDK المخصّص للتجميع كقيمة تلقائية لإصدار حزمة SDK المستهدَف في التطبيقات والاختبارات. قبل هذا التغيير، كان إصدار حزمة SDK المستهدَف يتم ضبطه تلقائيًا على إصدار حزمة SDK الأدنى. |
false ← true |
حدِّد إصدار حزمة SDK المستهدَف بشكلٍ صريح للتطبيقات والاختبارات. |
android.onlyEnableUnitTestForTheTestedBuildType |
لا ينشئ سوى مكوّنات اختبار الوحدة لنوع الإصدار الذي تم اختباره. في المشروع التلقائي، يؤدي ذلك إلى إنشاء اختبار وحدة واحد لتصحيح الأخطاء، بينما كان السلوك السابق هو تشغيل اختبارات الوحدات لتصحيح الأخطاء أو الإصدار. |
false ← true |
إذا كان مشروعك لا يتطلّب إجراء اختبارات لكل من إصدارات تصحيح الأخطاء والإصدارات العلنية، لن تحتاج إلى إجراء أي تغيير. |
android.proguard.failOnMissingFiles |
تعذُّر الإنشاء مع ظهور خطأ إذا لم تكن أي من ملفات الاحتفاظ المحدّدة في AGP DSL متوفّرة على القرص قبل هذا التغيير، كانت الأخطاء الإملائية في أسماء الملفات تؤدي إلى تجاهل الملفات بدون إشعار. | false ← true |
إزالة أي بيانات غير صالحة لملفات Proguard |
android.r8.optimizedResourceShrinking |
تسمح أداة R8 بالاحتفاظ بعدد أقل من موارد Android من خلال أخذ الفئات وموارد Android في الاعتبار معًا. | false ← true |
إذا كانت قواعد الاحتفاظ بمشروعك مكتملة، ليس عليك إجراء أي تغيير. |
android.r8.strictFullModeForKeepRules |
تسمح أداة R8 بالاحتفاظ بعدد أقل من العناصر من خلال عدم الاحتفاظ بشكل ضمني بالدالة الإنشائية التلقائية عند الاحتفاظ بفئة.
أي أنّ -keep class A لم يعُد يعني -keep class A { <init>(); } |
false ← true |
إذا كانت قواعد الاحتفاظ بمشروعك مكتملة، ليس عليك إجراء أي تغيير.
استبدِل -keep class A
بالقيمة
-keep class A { <init>(); }
في قواعد الاحتفاظ الخاصة بمشروعك في أي حالات تحتاج فيها إلى الاحتفاظ بالدالة الإنشائية التلقائية.
|
android.defaults.buildfeatures.resvalues |
تفعيل
resValues
في جميع المشاريع الفرعية
|
true ← false |
فعِّل resValues في المشاريع الفرعية التي تحتاج إليها فقط
من خلال ضبط ما يلي في ملفات إنشاء Gradle الخاصة بهذه المشاريع:
android { buildFeatures { resValues = true } } |
android.defaults.buildfeatures.shaders |
تتيح هذه السمة تجميع برامج التظليل في جميع المشاريع الفرعية | true ← false |
فعِّل تجميع برامج التظليل في المشاريع الفرعية التي تحتوي على برامج تظليل فقط ليتم تجميعها من خلال ضبط ما يلي في ملفات إنشاء Gradle الخاصة بهذه المشاريع:
android { buildFeatures { shaders = true } } |
android.r8.proguardAndroidTxt.disallowed |
في الإصدار 9.0 من "مكوّن Android الإضافي لبرنامج Gradle"، لن تتوافق اللغة getDefaultProguardFile() إلا مع proguard-android-optimize.txt بدلاً من proguard-android.txt . يتم ذلك لمنع الاستخدام غير المقصود للعلامة dontoptimize ، والتي يتم تضمينها في proguard-android.txt .
|
false ← true |
يمكنك تحديد dontoptimize بشكلٍ صريح في ملف proguardFile مخصّص إذا أردت تجنُّب التحسين، بالإضافة إلى استخدام proguard-android-optimize.txt . احرص على إزالة العلامة dontoptimize من هذا الملف إذا أمكن، لأنّها تقلّل من مزايا التحسين في R8. إذا لم يكن الأمر كذلك، يمكنك إيقاف هذه الميزة من خلال ضبط android.r8.globalOptionsInConsumerRules.disallowed=false .
|
android.r8.globalOptionsInConsumerRules.disallowed |
اعتبارًا من الإصدار 9.0 من "مكوّن Android الإضافي لبرنامج Gradle"، سيتعذّر نشر مكتبة Android ووحدة الميزات إذا كانت ملفات الاحتفاظ بالمستهلك تحتوي على إعدادات Proguard مسبِّبة للمشاكل. يجب استخدام ملفات المستهلك التي تتضمّن خيارات عامة مثل dontoptimize أو dontobfuscate في وحدات التطبيق فقط، ويمكن أن تقلّل من مزايا التحسين لمستخدمي المكتبة. سيتجاهل تجميع وحدة تطبيق Android أي خيارات عامة من هذا النوع بدون إشعار إذا كانت مضمّنة في عنصر تابع مجمَّع مسبقًا (ملف JAR أو AAR). يمكنك معرفة وقت حدوث ذلك من خلال التحقّق من ملف configuration.txt (عادةً في مسار مثل <app_module>/build/outputs/mapping/<build_variant>/configuration.txt ) بحثًا عن تعليقات مثل: # REMOVED CONSUMER RULE: dontoptimize
|
false ← true |
يجب أن تزيل المكتبات المنشورة أي قواعد غير متوافقة. يجب أن تنقل المكتبات الداخلية أي قواعد غير متوافقة ولكنها مطلوبة إلى ملف proguardFile في وحدة تطبيق بدلاً من ذلك. يمكنك إيقاف هذه الميزة من خلال رمز الإعدادات android.r8.globalOptionsInConsumerRules.disallowed=false . بعد أن تصبح جميع ملفات الاحتفاظ بالمستهلك متوافقة، أزِل خيار إيقاف الميزة.
|
الميزات التي تمت إزالتها
يزيل الإصدار 9.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android الوظائف التالية:
- إيقاف إمكانية تضمين تطبيقات Wear OS
يزيل الإصدار 9.0 من "استوديو Android" إمكانية تضمين تطبيقات Wear OS، والتي لم تعُد متاحة في Play. ويشمل ذلك إزالة إعداداتwearApp
وAndroidSourceSet.wearAppConfigurationName
DSL. اطّلِع على مقالة التوزيع على Wear OS لمعرفة كيفية نشر تطبيقك على Wear OS. - مهمة الإبلاغ عن
androidDependencies
وsourceSets
تغيير DSL
يتضمّن الإصدار 9.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android تغييرات DSL التالية التي تؤدي إلى إيقاف بعض الوظائف:
تمت إزالة تحديد المَعلمات الخاص بـ
CommonExtension
.في حد ذاته، هذا التغيير هو تغيير غير متوافق على مستوى المصدر فقط للمساعدة في تجنُّب التغييرات غير المتوافقة المستقبلية على مستوى المصدر، ولكنّه يعني أيضًا أنّه يجب نقل طرق الحظر من
CommonExtension
إلىApplicationExtension
وLibraryExension
وDynamicFeatureExtension
وTestExtension
.عند ترقية مشروعك إلى الإصدار 9.0 من "مكوّن Android الإضافي في Gradle"، أعِد تصميم رمز المكوّن الإضافي في Gradle الذي يستخدم هذه المَعلمات أو طرق الحظر. على سبيل المثال، تم تعديل المكوّن الإضافي التالي لإزالة المَعلمة "النوع" وعدم الاعتماد على طرق الحظر التي تمت إزالتها:
AGP 8.13
val commonExtension: CommonExtension<*, *, *, *, *, *> = extensions.getByType(CommonExtension::class) commonExtension.apply { defaultConfig { minSdk { version = release(28) } } }
AGP 9.0
val commonExtension: CommonExtension = extensions.getByType(CommonExtension::class) commonExtension.apply { defaultConfig.apply { minSdk { version = release(28) } } }
بالنسبة إلى المكوّنات الإضافية التي تستهدف مجموعة من إصدارات المكوّن الإضافي لنظام Gradle المتوافق مع Android، يكون استخدام الدالة getter مباشرةً متوافقًا مع إصدارات المكوّن الإضافي لنظام Gradle المتوافق مع Android الأقدم من الإصدار 9.0.
إزالة DSL
يزيل الإصدار 9.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android ما يلي:
AndroidSourceSet.jni
، لأنّه لم يكن يعمل.AndroidSourceSet.wearAppConfigurationName
، في ما يتعلق بإيقاف ميزة التطبيق المضمّن على Wear OS.BuildType.isRenderscriptDebuggable
، لأنّه لم يكن يعمل.DependencyVariantSelection
، وتم استبداله بـDependencySelection
، والذي يتم عرضه على النحو التالي:kotlin.android.localDependencySelection
Installation.installOptions(String)
، وتم استبدالها بالسمة القابلة للتغييرInstallation.installOptions
.الكتلة التجريبية
PostProcessing
التي لم يتم تثبيتها أبدًا.
ProductFlavor.setDimension
، والتي تم استبدالها بالسمةdimension
LanguageSplitOptions
، الذي كان مفيدًا فقط في تطبيقات Google Play الفورية المتوقّفة نهائيًا.
واجهات برمجة التطبيقات التي تمت إزالتها
يزيل الإصدار 9.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android ما يلي:
AndroidComponentsExtension.finalizeDSl
، وتم استبداله بـfinalizeDsl
Component.transformClassesWith
، وتم استبداله بـInstrumentation.transformClassesWith
Component.setAsmFramesComputationMode
، وتم استبداله بـInstrumentation.setAsmFramesComputationMode
ComponentBuilder.enabled
، وتم استبداله بـComponentBuilder.enable
.DependenciesInfoBuilder.includedInApk
. تم استبداله بـincludeInApk
DependenciesInfoBuilder.includedInBundle
. تم استبداله بـincludeInBundle
GeneratesApk.targetSdkVersion
. تم استبداله بـtargetSdk
Variant.minSdkVersion
. تم استبداله بـminSdk
Variant.maxSdkVersion
. تم استبداله بـmaxSdk
Variant.targetSdkVersion
. تم استبداله بـtargetSdk
Variant.unitTest
، لأنّها لم تكن تنطبق على المكوّن الإضافيcom.android.test
. يتوفّر النوعunitTest
على الأنواع الفرعيةVariantBuilder
التي تتضمّنHasUnitTest
.VariantBuilder.targetSdk
وtargetSdkPreview
، لأنّها لم تكن ذات معنى في المكتبات. يمكنك استخدامGeneratesApkBuilder.targetSdk
أوGeneratesApkBuilder.targetSdkPreview
بدلاً من ذلك.VariantBuilder.enableUnitTest
، لأنّها لم تكن تنطبق على المكوّن الإضافيcom.android.test
. يتوفّر النوعenableUnitTest
على الأنواع الفرعيةVariantBuilder
التي تتضمّنHasUnitTestBuilder
.تمت إزالة
VariantBuilder.unitTestEnabled
واستبداله بـenableUnitTest
الذي يحمل اسمًا أكثر اتساقًا، وذلك في الأنواع الفرعيةVariantBuilder
التي تتضمّنHasUnitTestBuilder
.VariantOutput.enable
. تم استبداله بـenabled
تم إيقاف الميزتَين
FeaturePlugin
وFeatureExtension
نهائيًا.واجهات برمجة التطبيقات
BaseExtension.registerTransform
التي تم إيقافها نهائيًا وإيقافها، والتي كانت متاحة فقط للسماح بالتجميع باستخدام أحدث إصدار من "مكوّن Android الإضافي" مع استهداف الإصدار 4.2 أو الإصدارات الأقدم من "مكوّن Android الإضافي"
إزالة خصائص Gradle
تمت إضافة خصائص Gradle التالية في البداية كطرق لإيقاف الميزات التي تم تفعيلها تلقائيًا على مستوى العالم.
تم إيقاف هذه الميزات تلقائيًا منذ الإصدار 8.0 من "مكوّن Android الإضافي لبرنامج Gradle" أو الإصدارات الأقدم. فعِّل هذه الميزات فقط في المشاريع الفرعية التي تستخدمها للحصول على عملية إنشاء أكثر كفاءة.
الخاصية | الوظيفة | الاستبدال |
---|---|---|
android.defaults.buildfeatures.aidl |
تتيح هذه السمة تجميع AIDL في جميع المشاريع الفرعية |
فعِّل تجميع AIDL في المشاريع الفرعية فقط التي تتضمّن مصادر AIDL
من خلال ضبط السمة التالية في ملفات تصميم Gradle الخاصة بهذه المشاريع:
android { buildFeatures { aidl = true } } |
android.defaults.buildfeatures.renderscript |
تتيح تجميع RenderScript في جميع المشاريع الفرعية |
فعِّل تجميع renderscript في المشاريع الفرعية فقط التي تتضمّن مصادر renderscript
من خلال ضبط السمة التالية في ملفات إنشاء Gradle الخاصة بهذه المشاريع:
android { buildFeatures { renderScript = true } } |
خصائص Gradle الإلزامية
يُظهر الإصدار 9.0 من "مكوّن Android الإضافي في Gradle" خطأً إذا ضبطت خصائص Gradle التالية.
لن يرقّي مساعد ترقية المكوّن الإضافي لنظام Gradle المتوافق مع Android المشاريع إلى الإصدار 9.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android التي تستخدم هذه الخصائص.
الخاصية | الوظيفة |
---|---|
android.r8.integratedResourceShrinking |
يتم الآن دائمًا تنفيذ عملية تصغير حجم الموارد كجزء من R8، وقد تمت إزالة التنفيذ السابق. |
المشاكل التي تم إصلاحها
الإصدار 9.0.0-alpha10 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
المشاكل التي تم إصلاحها | ||||
---|---|---|---|---|
المكوّن الإضافي لنظام Gradle المتوافق مع Android |
|
|||
Lint |
|
الإصدار 9.0.0-alpha09 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
المشاكل التي تم إصلاحها | ||||
---|---|---|---|---|
المكوّن الإضافي لنظام Gradle المتوافق مع Android |
|
الإصدار 9.0.0-alpha08 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
المشاكل التي تم إصلاحها | |
---|---|
لم يتم وضع العلامة "تم حلّها" على أي مشاكل عامة في الإصدار 9.0.0-alpha08 من "مكوّن Android الإضافي في Gradle" |
الإصدار 9.0.0-alpha07 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
المشاكل التي تم إصلاحها | |||||||||
---|---|---|---|---|---|---|---|---|---|
المكوّن الإضافي لنظام Gradle المتوافق مع Android |
|
الإصدار 9.0.0-alpha06 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
المشاكل التي تم إصلاحها | |||||
---|---|---|---|---|---|
المكوّن الإضافي لنظام Gradle المتوافق مع Android |
|
||||
Lint |
|
الإصدار 9.0.0-alpha05 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
المشاكل التي تم إصلاحها | |||||
---|---|---|---|---|---|
المكوّن الإضافي لنظام Gradle المتوافق مع Android |
|
||||
Lint |
|
الإصدار 9.0.0-alpha04 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
المشاكل التي تم إصلاحها | ||||
---|---|---|---|---|
المكوّن الإضافي لنظام Gradle المتوافق مع Android |
|
|||
Lint |
|
الإصدار 9.0.0-alpha03 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
المشاكل التي تم إصلاحها | ||||
---|---|---|---|---|
المكوّن الإضافي لنظام Gradle المتوافق مع Android |
|
|||
Lint |
|
الإصدار 9.0.0-alpha02 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
المشاكل التي تم إصلاحها | ||||
---|---|---|---|---|
المكوّن الإضافي لنظام Gradle المتوافق مع Android |
|
الإصدار 9.0.0-alpha01 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
المشاكل التي تم إصلاحها | |||||||
---|---|---|---|---|---|---|---|
المكوّن الإضافي لنظام Gradle المتوافق مع Android |
|