অ্যান্ড্রয়েড গ্রেডল প্লাগইন 9.0 বিল্ট-ইন কোটলিন সমর্থন প্রবর্তন করে এবং এটি ডিফল্টরূপে সক্ষম করে। তার মানে কোটলিন সোর্স ফাইল কম্পাইল করার জন্য আপনাকে আর আপনার বিল্ড ফাইলে org.jetbrains.kotlin.android
(বা kotlin-android
) প্লাগইন প্রয়োগ করতে হবে না। অন্তর্নির্মিত Kotlin এর সাথে, আপনার বিল্ড ফাইলগুলি সহজ এবং আপনি AGP এবং kotlin-android
প্লাগইনের মধ্যে সামঞ্জস্যপূর্ণ সমস্যাগুলি এড়াতে পারেন৷
অন্তর্নির্মিত Kotlin সক্ষম করুন
অন্তর্নির্মিত Kotlin সমর্থন পেতে আপনার AGP 9.0 বা উচ্চতর প্রয়োজন। AGP 9.0 ইতিমধ্যেই আপনার সমস্ত মডিউলের জন্য বিল্ট-ইন Kotlin সক্ষম করে যেখানে আপনি AGP প্রয়োগ করেন, তাই এটি সক্ষম করার জন্য আপনাকে কিছু করতে হবে না। যাইহোক, যদি আপনি আগে gradle.properties
ফাইলে android.builtInKotlin=false
সেট করে বিল্ট-ইন Kotlin থেকে অপ্ট আউট করে থাকেন , তাহলে আপনাকে হয় সেই সেটিংটি সরিয়ে ফেলতে হবে অথবা এটি সক্রিয় করতে android.builtInKotlin=true
সেট করতে হবে।
অন্তর্নির্মিত Kotlin-এর জন্য আপনাকে আপনার প্রকল্পে কিছু পরিবর্তন করতে হবে, তাই আপনি অন্তর্নির্মিত Kotlin সক্ষম করার পরে, আপনার প্রকল্প স্থানান্তর করার জন্য পরবর্তী পদক্ষেপগুলি অনুসরণ করুন৷
মাইগ্রেশন পদক্ষেপ
আপনি একটি পুরানো AGP সংস্করণ থেকে AGP 9.0 এ আপনার প্রকল্প আপগ্রেড করার পরে বা আপনি ম্যানুয়ালি বিল্ট-ইন Kotlin সক্ষম করার পরে, আপনি নিম্নলিখিত ত্রুটি বার্তা দেখতে পারেন:
Failed to apply plugin 'org.jetbrains.kotlin.android'.
> Cannot add extension with name 'kotlin', as there is an extension already registered with that name.
...বা
Failed to apply plugin 'com.jetbrains.kotlin.android'
> The 'org.jetbrains.kotlin.android' plugin is no longer required for Kotlin support since AGP 9.0.
কারণ বিল্ট-ইন কোটলিনের জন্য আপনাকে আপনার প্রকল্পে কিছু পরিবর্তন করতে হবে। এই ত্রুটিটি সমাধান করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন।
-
kotlin-android
প্লাগইন সরান - প্রয়োজনে
kotlin-kapt
প্লাগইন মাইগ্রেট করুন - প্রয়োজনে
kotlinOptions{}
ব্লক মাইগ্রেট করুন
1. kotlin-android
প্লাগইন সরান
মডিউল-স্তরের বিল্ড ফাইল থেকে org.jetbrains.kotlin.android
(বা kotlin-android
) প্লাগইনটি সরান যেখানে আপনি এটি প্রয়োগ করেন। আপনি প্লাগইন ঘোষণা করতে সংস্করণ ক্যাটালগ ব্যবহার করছেন কিনা তার উপর নির্ভর করে সরানোর সঠিক কোড।
সংস্করণ ক্যাটালগ সঙ্গে
কোটলিন
// Module-level build file plugins {alias(libs.plugins.kotlin.android)}
গ্রোভি
// Module-level build file plugins {alias(libs.plugins.kotlin.android)}
কোন সংস্করণ ক্যাটালগ
কোটলিন
// Module-level build file plugins {id("org.jetbrains.kotlin.android")}
গ্রোভি
// Module-level build file plugins {id 'org.jetbrains.kotlin.android'}
তারপরে, আপনার শীর্ষ-স্তরের বিল্ড ফাইল থেকে প্লাগইনটি সরান:
সংস্করণ ক্যাটালগ সঙ্গে
কোটলিন
// Top-level build file plugins {alias(libs.plugins.kotlin.android) apply false}
গ্রোভি
// Top-level build file plugins {alias(libs.plugins.kotlin.android) apply false}
কোন সংস্করণ ক্যাটালগ
কোটলিন
// Top-level build file plugins {id("org.jetbrains.kotlin.android") version "KOTLIN_VERSION" apply false}
গ্রোভি
// Top-level build file plugins {id 'org.jetbrains.kotlin.android' version 'KOTLIN_VERSION' apply false}
আপনি যদি সংস্করণ ক্যাটালগ ব্যবহার করেন তবে সংস্করণ ক্যাটালগ TOML ফাইল থেকে প্লাগইন সংজ্ঞাটিও সরিয়ে দিন (সাধারণত gradle/libs.versions.toml
):
[plugins]kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "KOTLIN_VERSION" }
2. প্রয়োজনে kotlin-kapt
প্লাগইন স্থানান্তর করুন
আপনি যদি আপনার বিল্ড ফাইলে org.jetbrains.kotlin.kapt
(বা kotlin-kapt
) ব্যবহার করেন, তাহলে এই প্লাগইনটি অন্তর্নির্মিত Kotlin-এর সাথে সামঞ্জস্যপূর্ণ হবে না। আপনার বর্তমান অ্যান্ড্রয়েড গ্রেডল প্লাগইনের মতো একই সংস্করণ ব্যবহার করে আপনাকে এই প্লাগইনটি com.android.legacy-kapt
প্লাগইন দিয়ে প্রতিস্থাপন করতে হবে।
উদাহরণস্বরূপ, সংস্করণ ক্যাটালগ সহ, আপনার সংস্করণ ক্যাটালগ TOML ফাইলটি নিম্নরূপ আপডেট করুন:
[plugins] android-application = { id = "com.android.application", version.ref = "AGP_VERSION" } # Add the following plugin definition legacy-kapt = { id = "com.android.legacy-kapt", version.ref = "AGP_VERSION" } # Remove the following plugin definitionkotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "KOTLIN_VERSION" }
তারপর, আপনার বিল্ড ফাইল আপডেট করুন:
কোটলিন
// Top-level build file plugins { alias(libs.plugins.legacy.kapt) apply falsealias(libs.plugins.kotlin.kapt) apply false}
গ্রোভি
// Top-level build file plugins { alias(libs.plugins.legacy.kapt) apply falsealias(libs.plugins.kotlin.kapt) apply false}
কোটলিন
// Module-level build file plugins { alias(libs.plugins.legacy.kapt)alias(libs.plugins.kotlin.kapt)}
গ্রোভি
// Module-level build file plugins { alias(libs.plugins.legacy.kapt)alias(libs.plugins.kotlin.kapt)}
3. প্রয়োজনে kotlinOptions{}
ব্লক মাইগ্রেট করুন
আপনি যদি android.kotlinOptions{}
DSL ব্যবহার করেন, তাহলে আপনাকে এটিকে kotlin.compilerOptions{}
DSL-এ স্থানান্তর করতে হবে।
উদাহরণস্বরূপ, এই কোড আপডেট করুন:
কোটলিন
android { kotlinOptions { languageVersion = "2.0" jvmTarget = "11" } }
গ্রোভি
android { kotlinOptions { languageVersion = "2.0" jvmTarget = "11" } }
...নতুন ডিএসএলে:
কোটলিন
kotlin { compilerOptions { languageVersion = org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_2_0 // Optional: Set jvmTarget // jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11 } }
গ্রোভি
kotlin { compilerOptions { languageVersion = org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_2_0 // Optional: Set jvmTarget // jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11 } }
সমস্যা রিপোর্ট করুন
পূর্ববর্তী ধাপগুলি সম্পূর্ণ করার পরে, যদি আপনি সমস্যায় পড়েন, তাহলে #438678642 নম্বরের বিবরণে পরিচিত সমস্যাগুলি দেখুন এবং প্রয়োজনে আমাদের মতামত দিন৷
অন্তর্নির্মিত Kotlin থেকে অপ্ট আউট করুন
যদি আপনি অন্তর্নির্মিত Kotlin ব্যবহার করার জন্য আপনার প্রকল্প স্থানান্তর করতে অক্ষম হন, তাহলে অন্তর্নির্মিত Kotlin অস্থায়ীভাবে নিষ্ক্রিয় করতে gradle.properties
ফাইলে android.builtInKotlin = false
সেট করুন। আপনি যখন এটি করেন, বিল্ডটি আপনাকে বিল্ট-ইন কোটলিনে স্থানান্তরিত করার জন্য একটি সতর্কতা দেখায় কারণ আপনি AGP 10.0 এর আগে AGP 9.x এর ভবিষ্যতের সংস্করণে বিল্ট-ইন Kotlin অক্ষম করতে পারবেন না।
মডিউল-বাই-মডিউল মাইগ্রেশন
android.builtInKotlin
Gradle সম্পত্তি আপনাকে আপনার সমস্ত মডিউলের জন্য বিল্ট-ইন Kotlin সক্ষম বা নিষ্ক্রিয় করতে দেয় যেখানে আপনি AGP প্রয়োগ করেন৷
যদি একবারে আপনার সমস্ত মডিউল স্থানান্তর করা চ্যালেঞ্জিং হয়, আপনি একবারে একটি মডিউল স্থানান্তর করতে পারেন:
সমস্ত মডিউলের জন্য বিল্ট-ইন কোটলিন নিষ্ক্রিয় করতে
gradle.properties
ফাইলেandroid.builtInKotlin = false
সেট করুন।আপনার বর্তমান অ্যান্ড্রয়েড গ্রেডল প্লাগইনের মতো একই সংস্করণ ব্যবহার করে আপনি বিল্ট-ইন কোটলিন সক্ষম করতে চান এমন মডিউলটিতে
com.android.experimental.built-in-kotlin
প্লাগইনটি প্রয়োগ করুন।এই মডিউলটি অন্তর্নির্মিত Kotlin-এ স্থানান্তর করতে পূর্ববর্তী মাইগ্রেশন পদক্ষেপগুলি সম্পাদন করুন৷
একবার আপনি আপনার সমস্ত মডিউল স্থানান্তরিত করার পরে, আপনার বিল্ড ফাইলগুলিতে android.builtInKotlin =
gradle.properties
এandroid.builtInKotlin = false
সেটিং এবংcom.android.experimental.built-in-kotlin
প্লাগইন সরিয়ে ফেলুন।