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

يتطلب هذا الإصدار من مكوّن Android الإضافي ما يلي:

  • Gradle 4.4 أو إصدار أحدث:

    للحصول على مزيد من المعلومات، يمكنك الاطّلاع على القسم حول تحديث Gradle.

  • أدوات الإنشاء 27.0.3 أو إصدار أحدث.

    يُرجى العِلم أنّك لم تعُد بحاجة إلى تحديد إصدار لأدوات التصميم باستخدام السمة android.buildToolsVersion، لأنّ المكوّن الإضافي يستخدم تلقائيًا الحد الأدنى من الإصدار المطلوب.

برنامج تجميع DEX جديد، D8

يستخدم "استوديو Android" تلقائيًا الآن برنامج تجميع DEX جديد يُسمى D8. وتجميع DEX هو عملية تحويل رمز بايت .class إلى رمز بايت .dex لنظام تشغيل Android (أو Dalvik للإصدارات القديمة من Android). مقارنةً ببرنامج التجميع السابق المعروف باسم DX، يعمل D8 على تجميع ملفات DEX الأصغر حجمًا بشكل أسرع، مع تحقيق الأداء نفسه في وقت تشغيل التطبيق أو أداء أفضل في الوقت نفسه.

يجب ألا يغيّر اليوم 88 سير العمل اليومي لتطوير التطبيقات. مع ذلك، إذا واجهت أي مشاكل تتعلّق بأداة تجميع البيانات الجديدة، يُرجى الإبلاغ عن الخطأ. يمكنك إيقاف D8 مؤقتًا واستخدام DX من خلال تضمين ما يلي في ملف gradle.properties الخاص بمشروعك:

      android.enableD8=false
    

وبالنسبة إلى المشاريع التي تستخدم ميزات لغة Java 8، يتم تفعيل ميزة الإزالة المتزايدة تلقائيًا. يمكنك إيقافه من خلال تحديد ما يلي في ملف gradle.properties الخاص بمشروعك:

      android.enableIncrementalDesugaring=false.
    

معاينة المستخدمين: إذا كنت تستخدم إصدارًا للمعاينة من D8، تجدر الإشارة إلى أنّه يتم الآن تجميع هذا الإصدار من المكتبات المضمّنة في أدوات إصدار SDK، وليس من JDK. وبالتالي، إذا كنت تصل إلى واجهات برمجة التطبيقات المتوفّرة في JDK ولكن ليس في مكتبات أدوات إنشاء حزمة SDK، سيظهر خطأ في التجميع.

التغييرات في السلوك

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