تحديثات Gradle والمكوّن الإضافي لنظام Gradle المتوافق مع Android
ترقية إصدارَي Gradle والمكوّن الإضافي لنظام Gradle المتوافق مع Android
أولاً، عليك ترقية إصدارَي Gradle و"المكوّن الإضافي لنظام Gradle المتوافق مع Android". تتضمّن هذه الترقية توافقًا أفضل مع بعض تبعيات حزمة تطوير البرامج (SDK) (بما في ذلك Kotlin 1.9)، بالإضافة إلى بعض إصلاحات الأخطاء البالغة الأهمية.
يتطلّب هذا الإصدار الرئيسي من حزمة SDK توفُّر إصدارات التبعيات التالية لمشروع تطبيق Android:
- إصدار Gradle لا يقل عن 7.5.0 ولا يزيد عن 7.6.0.
- إصدار المكوّن الإضافي لنظام Gradle المتوافق مع Android (AGP) في نطاق الإصدار 7.4.x.
يمكنك استهداف إصدار أحدث من المكوّنات الإضافية، ولكن قد تظهر لك تحذيرات بشأن الإيقاف النهائي أو قد لا تعمل بعض الميزات الجديدة.
لتعديل إصدار Gradle، عدِّل السطر في ملف /gradle/wrapper/gradle-wrapper.properties الخاص بمشروعك
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
لتعديل إصدار "المكوّن الإضافي لنظام Gradle المتوافق مع Android"، عدِّل ملف build.gradle الذي يحتوي على حزمة buildscript. على سبيل المثال:
buildscript {
repositories {
google()
mavenCentral()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.4.1'
}
}
نقل البيانات من Java 7 إلى Java 8 لدعم المكتبات
الخطوة 1: تفعيل إمكانية استخدام مكتبة Java 8
بما أنّ الحد الأدنى لمستوى واجهة برمجة التطبيقات في حزمة تطوير البرامج (SDK) هو 23 وإصدار AGP المطلوب هو 7.4 أو أحدث، فإنّ الإعدادات تختلف قليلاً عن مستندات المصدر المذكورة.
buildscript {
repositories {
google()
mavenCentral()
jcenter()
maven {
url = uri("https://storage.googleapis.com/r8-releases/raw")
}
}
dependencies {
classpath 'com.android.tools:r8:8.0.46'
classpath 'com.android.tools.build:gradle:7.4.1'
}
}
android {
compileOptions {
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
// Sets Java compatibility to Java 8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.3'
}
الخطوة 2: نقل البيانات من Proguard أو Dexguard إلى R8
يستخدم الإصدار 7.4 من المكوّن الإضافي لنظام Gradle المتوافق مع Android والإصدارات الأحدث منه R8 كأداة تلقائية لتقليص حجم الملف الثنائي وإخفاء هويته وتحسينه، لذا ليس عليك اتّخاذ أي إجراء خاص في هذه المرحلة.
إذا تم نقل المشروع من الإصدار 4.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android أو إصدار أحدث، قد يُصدر المكوّن الإضافي التحذيرات التالية بشأن عمليات إزالة الملفات:
- استخدام واحد (
useProguard true) في ملف واحد (build.gradle) - استخدام واحد (
android.enableR8=false) في ملف واحد (gradle.properties)
وتؤدي إزالة هذه الأسطر عادةً إلى حلّ هذه المشاكل.
نقل البيانات من الإصدار 1.6 إلى 1.9 من Kotlin
الخطوة 1: نقل البيانات إلى الإصدار 1.9.0 من المكوّن الإضافي Kotlin Gradle
يُرجى تحديث إصدار المكوّن الإضافي Kotlin Gradle في ملف build.gradle للوحدة ذات المستوى الأعلى في تطبيقك. تأكَّد من إضافة org.jetbrains.kotlin:kotlin-gradle-plugin
في التبعيات من مجموعة buildscript في حال عدم توفّرها.
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0"
}
}
عليك نقل تطبيقك من Kotlin-synthetics إذا كنت تستخدم المكوّن الإضافي Kotlin Gradle Plugin 1.6.X أو 1.7.X. لمزيد من المعلومات، يُرجى الرجوع إلى دليل نقل البيانات الرسمي.
الخطوة 2: ترقية kotlin-stdlib إلى الإصدار 1.9.0
يُرجى ترقية kotlin-stblib إلى الإصدار 1.9.0 في ملف build.gradle الخاص بتطبيقك.
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.0"
}
يُرجى التأكّد من إزالة أي إشارات إلى kotlin-stdlib-jdk7 أو
kotlin-stdlib-jdk8. تم دمج كلتا التبعيتين في
kotlin-stdlib بدءًا من الإصدار 1.8.0 من Kotlin.