الإصدار 3.1.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" (آذار/مارس 2018)
يتطلّب هذا الإصدار من المكوّن الإضافي لنظام Android ما يلي:
الحد الأدنى للإصدار | الإصدار التلقائي | ملاحظات | |
---|---|---|---|
Gradle | 4.4 | 4.4 | لمزيد من المعلومات، يمكنك الاطّلاع على تحديث Gradle. |
أدوات إنشاء حِزم SDK | 27.0.3 | 27.0.3 | ثبِّت أو اضبط أدوات إنشاء حِزم SDK. يُرجى العِلم أنّه لم يعُد عليك تحديد إصدار لأدوات الإنشاء باستخدام السمة android.buildToolsVersion، إذ يستخدم المكوّن الإضافي الحد الأدنى من الإصدار المطلوب تلقائيًا. |
أداة تحويل DEX جديدة، D8
يستخدم "استوديو Android" الآن بشكل تلقائي مُجمِّع DEX جديدًا يُسمى D8. تجميع ملف DEX
هو عملية تحويل رمز برمجي .class
إلى
رمز برمجي .dex
لاستخدامه في "وقت تشغيل Android" (أو Dalvik للإصدارات القديمة
من Android). مقارنةً بالمجمِّع السابق المُسمى DX، يُجمِّع D8
العملية بشكل أسرع ويُخرج ملفات DEX أصغر حجمًا، مع الحفاظ على الأداء نفسه أو
أفضل في وقت تشغيل التطبيق.
من المفترض ألا يؤدي استخدام D8 إلى تغيير سير عمل تطوير التطبيقات اليومي. ومع ذلك، إذا
كنت تواجه أي مشاكل متعلقة بالمجمِّع الجديد، يُرجى
الإبلاغ عن خطأ. يمكنك مؤقتًا
إيقاف D8 واستخدام DX من خلال تضمين ما يلي فيملف
gradle.properties
الخاص بمشروعك:
android.enableD8=false
بالنسبة إلى المشاريع التي
تستخدم ميزات لغة Java 8،
يتم تفعيل ميزة إزالة الترميز بشكل تدريجي تلقائيًا. يمكنك إيقافه من خلال
تحديد ما يلي في ملف gradle.properties
الخاص بمشروعك:
android.enableIncrementalDesugaring=false.
مستخدمو الإصدارات التجريبية: إذا كنت تستخدم حاليًا إصدارًا تجريبيًا من D8، يُرجى العِلم أنّه يتم الآن تجميعه باستخدام المكتبات المضمّنة في أدوات إنشاء حِزم SDK، وليس JDK. وبالتالي، إذا كنت تصل إلى واجهات برمجة التطبيقات المتوفّرة في حزمة JDK ولكن ليس في مكتبات أدوات إنشاء حزمة SDK، ستظهر لك رسالة خطأ في الترجمة.
تغييرات السلوك
-
عند إنشاء حِزم APK متعددة تستهدف كلّ منها واجهة تطبيقات ثنائية مختلفة، لن يُنشئ ملف حِزم APK لواجهات ABI التالية تلقائيًا:
mips
وmips64
وarmeabi
.إذا كنت تريد إنشاء حِزم APK تستهدف معرّفات ABI هذه، عليك استخدام NDK r16b أو إصدار أقدم و تحديد معرّفات ABI في ملف
build.gradle
، كما هو موضّح أدناه:splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
تُزيل الآن الذاكرة المخبأة للإنشاء في المكوّن الإضافي لنظام التشغيل Android إدخالات الذاكرة المخبأة التي مرّ عليها أكثر من 30 يومًا.
-
عند تمرير
"auto"
إلىresConfig
لم يعُد يتم تلقائيًا اختيار موارد السلاسل لحزمها في حزمة APK. في حال مواصلة استخدام"auto"
، يحزم المكوّن الإضافي جميع موارد السلاسل التي يوفّرها تطبيقك وتبعياته. لذلك، عليك بدلاً من ذلك تحديد كل لغة تريد أن ينشئ المكوّن الإضافي حِزمة لها في حزمة APK. -
بما أنّ الوحدات المحلية لا يمكنها الاعتماد على حزمة APK الاختبارية لتطبيقك، فإنّ إضافة متطلّبات إلى اختباراتك المستندة إلى أدوات القياس باستخدام إعداد
androidTestApi
بدلاً منandroidTestImplementation
يؤدي إلى إصدار Gradle للانذار التالي:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
الإصلاحات
- إصلاح مشكلة عدم تعرّف Android Studio بشكلٍ صحيح على التبعيات في عمليات الإنشاء المركبة
- إصلاح مشكلة ظهور خطأ في مزامنة المشروع عند تحميل المكوّن الإضافي لنظام التشغيل Android عدة مرات في عملية إنشاء واحدة، على سبيل المثال، عندما يتضمّن كل من المشاريع الفرعية المتعدّدة المكوّن الإضافي لنظام التشغيل Android في classpath لنص الترميز البرمجي للمشروع