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

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