تحديثات 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
بما أنّ الحد الأدنى لمستوى واجهة برمجة التطبيقات (API) لحزمة تطوير البرامج (SDK) هو 23 وإصدار "المكوّن الإضافي لنظام Gradle المتوافق مع Android" المطلوب هو 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" والإصدارات الأحدث، قد يعرض "المكوّن الإضافي لنظام Gradle المتوافق مع Android" التحذيرات التالية بشأن عمليات إزالة الملفات:
- استخدام
useProguard trueفي ملفbuild.gradle - استخدام
android.enableR8=falseفي ملفgradle.properties
عادةً ما تؤدي إزالة هذه الأسطر إلى حلّ هذه المشاكل.
نقل البيانات من Kotlin 1.6 إلى 1.9
الخطوة 1: نقل البيانات إلى الإصدار 1.9.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Kotlin"
عدِّل إصدار "المكوّن الإضافي لنظام Gradle المتوافق مع Kotlin" في ملف build.gradle على مستوى الوحدة في تطبيقك. تأكَّد من إضافة org.jetbrains.kotlin:kotlin-gradle-plugin في التبعيات من كتلة buildscript في حال كانت مفقودة.
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0"
}
}
عليك نقل بيانات تطبيقك من Kotlin-synthetics إذا كنت تستخدم الإصدار 1.6.X أو 1.7.X من "المكوّن الإضافي لنظام Gradle المتوافق مع Kotlin". راجِع دليل نقل البيانات الرسمي لمزيد من المعلومات.
الخطوة 2: ترقية kotlin-stdlib إلى 1.9.0
رقِّ إلى الإصدار 1.9.0 من kotlin-stblib في ملف build.gradle الخاص بتطبيقك.
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.0"
}
تأكَّد من إزالة أي مراجع إلى kotlin-stdlib-jdk7 أو kotlin-stdlib-jdk8. تم دمج كلتا التبعيتَين في
kotlin-stdlib بدءًا من Kotlin
1.8.0.