الإصدار 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 لنص الترميز البرمجي للمشروع