به Kotlin 2.0 مهاجرت کنید
اگر از Consumer SDK برای Android 3.0 و بالاتر استفاده می کنید، باید به Kotlin 2.0 ارتقا دهید. این صفحه راهنمایی برای سهولت انتقال به نسخه جدید Kotlin ارائه می دهد.
سازگاری Gradle و AGP
Kotlin 2.0 دارای الزامات حداقل و حداکثر نسخه برای Gradle و نسخه Android Gradle Plugin (AGP) است. اطمینان حاصل کنید که پروژه شما این الزامات را برای Kotlin 2.0 برآورده می کند.
حداقل نسخه AGP برای Consumer SDK 3.0+
Consumer SDK 3.0 نیاز به استفاده از AGP 7.3+ دارد.
حالت فول R8
Consumer SDK نسخه 3 و پایین تر از حالت Full R8 پشتیبانی نمی کند. اگر برنامه شما AGP 8.0+ را هدف قرار می دهد، باید به صراحت حالت Full R8 را غیرفعال کنید.
# settings.gradle
android.enableR8.fullMode=false
سازگاری نسخه کاتلین
Kotlin از سازگاری به عقب با سه نسخه زبان قبلی پشتیبانی می کند. این بدان معناست که اگر قبلاً از Kotlin 1.7+ با Consumer SDK استفاده میکنید، باید بتوانید بدون نیاز به رفع تمام تغییرات شکسته به Kotlin 2.0 ارتقا دهید. با این حال، سازگاری Kotlin فقط برای ویژگیهای زبان پایدار اعمال میشود . اگر از ویژگیهای آلفا، بتا یا آزمایشی در زبان Kotlin استفاده میکنید، ممکن است مجبور شوید تغییرات بیشتری در هنگام ارتقا ایجاد کنید.
پرچم های سازگاری کاتلین
همانطور که در بخش قبل ذکر شد، کاتلین حداکثر از 3 نسخه قبلی زبان را هنگام ارتقا پشتیبانی می کند. Kotlin دو پرچم را برای کمک به محدود کردن تغییرات شکسته ارائه می دهد :
زبان-نسخه XY
این پرچم تغییرات شکستن را به رفتار نسخه قبلی کاتلین برمی گرداند. به عنوان مثال، اگر از Kotlin 1.7 استفاده میکنید، میتوانید [ - language-version 1.7]
را مشخص کنید و تغییرات شکست جدید دیگر اعمال نمیشوند:
android {
kotlinOptions {
languageVersion = '1.7'
}
}
api-نسخه XY
این پرچم از استفاده APIهای جدید قبل از آماده شدن کد پایین دستی وابسته برای ترکیب Kotlin 2.0 جلوگیری می کند.
android {
kotlinOptions {
apiVersion = '1.7'
}
}
رویکرد هدفمندتر
علاوه بر استفاده از پرچمهای سازگاری Kotlin، توصیه میکنیم یادداشتهای انتشار Kotlin را مرور کنید و رفتارهایی را که میخواهید از نسخهای که از آن ارتقا میدهید حفظ کنید، انتخاب کنید. Kotlin لیستی از تغییرات شکسته و پرچم هایی را که می توان برای حفظ رفتار اصلی در راهنمای سازگاری خود برای هر نسخه تنظیم کرد، ارائه می دهد: