الإصدار 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).