الإصدار 3.1.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (مارس 2018)

يتطلّب هذا الإصدار ما يلي:

الإصدار الأدنى الإصدار التلقائي ملاحظات
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 متعددة يستهدف كل منها واجهة تطبيق ثنائية (ABI) مختلفة، لن تنشئ أداة حِزم APK لواجهات التطبيق الثنائية التالية تلقائيًا: mips وmips64 وarmeabi.

    إذا أردت إنشاء حِزم APK تستهدف واجهات التطبيق الثنائية هذه، عليك استخدام NDK r16b أو إصدار أقدم وتحديد واجهات التطبيق الثنائية في ملف 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".
  • يُصلح مشكلة ظهور خطأ في المزامنة عند تحميل المكوّن الإضافي المتوافق مع Android عدة مرات في إصدار واحد، مثلاً عندما تتضمّن عدة مشاريع فرعية المكوّن الإضافي المتوافق مع Android في مسار فئة buildscript.