الإصدار 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 Studio الآن تلقائيًا برنامج ترجمة 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 لواجهات التطبيق الثنائية التالية تلقائيًا: 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.