অ্যান্ড্রয়েড গ্রেডল প্লাগইন 8.9 রিলিজ নোট

JCenter সংগ্রহস্থলটি 31শে মার্চ, 2021-এ শুধুমাত্র পঠনযোগ্য হয়ে উঠেছে। আরও তথ্যের জন্য, JCenter পরিষেবা আপডেট দেখুন।

অ্যান্ড্রয়েড স্টুডিও বিল্ড সিস্টেমটি গ্রেডলের উপর ভিত্তি করে, এবং অ্যান্ড্রয়েড গ্রেডল প্লাগইন বেশ কয়েকটি বৈশিষ্ট্য যুক্ত করে যা অ্যান্ড্রয়েড অ্যাপ তৈরির জন্য নির্দিষ্ট। যদিও অ্যান্ড্রয়েড গ্রেডল প্লাগইন (এজিপি) সাধারণত অ্যান্ড্রয়েড স্টুডিওর সাথে লক-স্টেপে আপডেট করা হয়, প্লাগইন (এবং বাকি গ্রেডল সিস্টেম) অ্যান্ড্রয়েড স্টুডিও থেকে স্বাধীনভাবে চলতে পারে এবং আলাদাভাবে আপডেট করা যেতে পারে।

এই পৃষ্ঠাটি ব্যাখ্যা করে যে কীভাবে আপনার গ্রেডল টুলগুলিকে আপ টু ডেট রাখবেন এবং সাম্প্রতিক আপডেটগুলিতে কী আছে৷ অতীতের Android Gradle প্লাগইন সংস্করণগুলির জন্য রিলিজ নোটগুলির জন্য, অতীতের রিলিজ নোটগুলি দেখুন।

অ্যান্ড্রয়েড গ্রেডল প্লাগইনের এই সংস্করণে কী ঠিক করা হয়েছে তা দেখতে, বন্ধ হওয়া সমস্যাগুলি দেখুন।

Android Gradle প্লাগইনে আসন্ন ব্রেকিং পরিবর্তনগুলির একটি উচ্চ-স্তরের সারাংশের জন্য, Android Gradle প্লাগইন রোডম্যাপ দেখুন।

Gradle এর সাথে আপনার Android বিল্ডগুলি কীভাবে কনফিগার করবেন সে সম্পর্কে বিশদ বিবরণের জন্য, নিম্নলিখিত পৃষ্ঠাগুলি দেখুন:

Gradle বিল্ড সিস্টেম সম্পর্কে আরও তথ্যের জন্য, Gradle ব্যবহারকারী গাইড দেখুন।

অ্যান্ড্রয়েড গ্রেডল প্লাগইন আপডেট করুন

আপনি যখন অ্যান্ড্রয়েড স্টুডিও আপডেট করেন, আপনি স্বয়ংক্রিয়ভাবে সর্বশেষ উপলব্ধ সংস্করণে অ্যান্ড্রয়েড গ্রেডল প্লাগইন আপডেট করার জন্য একটি প্রম্পট পেতে পারেন। আপনি আপডেট গ্রহণ করতে বা ম্যানুয়ালি আপনার প্রকল্পের বিল্ড প্রয়োজনীয়তার উপর ভিত্তি করে একটি সংস্করণ নির্দিষ্ট করতে পারেন।

আপনি অ্যান্ড্রয়েড স্টুডিওতে ফাইল > প্রজেক্ট স্ট্রাকচার > প্রোজেক্ট মেনু অথবা টপ-লেভেল build.gradle.kts ফাইলে প্লাগইন ভার্সন নির্দিষ্ট করতে পারেন। প্লাগইন সংস্করণটি সেই Android স্টুডিও প্রকল্পে নির্মিত সমস্ত মডিউলের জন্য প্রযোজ্য। নিম্নলিখিত উদাহরণটি build.gradle.kts ফাইল থেকে প্লাগইনটিকে 8.9.0 সংস্করণে সেট করে:

কোটলিনগ্রোভি
plugins {
    id("com.android.application") version "8.9.0" apply false
    id("com.android.library") version "8.9.0" apply false
    id("org.jetbrains.kotlin.android") version "2.1.10" apply false
}
plugins {
    id 'com.android.application' version '8.9.0' apply false
    id 'com.android.library' version '8.9.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.1.10' apply false
}

সতর্কতা: আপনার সংস্করণ সংখ্যায় গতিশীল নির্ভরতা ব্যবহার করা উচিত নয়, যেমন 'com.android.tools.build:gradle:8.9.+' । এই বৈশিষ্ট্যটি ব্যবহার করে অপ্রত্যাশিত সংস্করণ আপডেট হতে পারে এবং সংস্করণের পার্থক্যগুলি সমাধান করতে অসুবিধা হতে পারে৷

যদি নির্দিষ্ট প্লাগইন সংস্করণটি ডাউনলোড করা না হয়ে থাকে, তাহলে পরের বার আপনি যখন আপনার প্রকল্প তৈরি করবেন বা Android স্টুডিও মেনু বার থেকে File > Sync Project with Gradle Files-এ ক্লিক করবেন তখন Gradle এটি ডাউনলোড করবে।

গ্রেডল আপডেট করুন

আপনি যখন অ্যান্ড্রয়েড স্টুডিও আপডেট করেন, আপনি গ্রেডলকে সর্বশেষ উপলব্ধ সংস্করণে আপডেট করার জন্য একটি প্রম্পট পেতে পারেন। আপনি আপডেট গ্রহণ করতে বা ম্যানুয়ালি আপনার প্রকল্পের বিল্ড প্রয়োজনীয়তার উপর ভিত্তি করে একটি সংস্করণ নির্দিষ্ট করতে পারেন।

Android Gradle প্লাগইনের প্রতিটি সংস্করণের জন্য Gradle-এর কোন সংস্করণ প্রয়োজন তা নিম্নলিখিত সারণীতে রয়েছে। সেরা পারফরম্যান্সের জন্য, আপনার গ্রেডল এবং প্লাগইন উভয়ের সাম্প্রতিক সম্ভাব্য সংস্করণ ব্যবহার করা উচিত।

প্লাগইন সংস্করণ ন্যূনতম প্রয়োজনীয় Gradle সংস্করণ
৮.৯ ৮.১১.১
৮.৮ 8.10.2
৮.৭ ৮.৯
8.6 ৮.৭
8.5 ৮.৭
৮.৪ 8.6
8.3 ৮.৪
8.2 8.2
8.1 ৮.০
৮.০ ৮.০
7.4 7.5
প্লাগইন সংস্করণ প্রয়োজনীয় Gradle সংস্করণ
7.3 7.4
7.2 7.3.3
7.1 7.2
7.0 7.0
4.2.0+ 6.7.1
4.1.0+ 6.5+
4.0.0+ 6.1.1+
3.6.0 - 3.6.4 ৫.৬.৪+
3.5.0 - 3.5.4 5.4.1+
3.4.0 - 3.4.3 5.1.1+
3.3.0 - 3.3.3 4.10.1+
3.2.0 - 3.2.1 4.6+
3.1.0+ 4.4+
3.0.0+ 4.1+
2.3.0+ 3.3+
2.1.3 - 2.2.3 2.14.1 - 3.5
2.0.0 - 2.1.2 2.10 - 2.13
1.5.0 2.2.1 - 2.13
1.2.0 - 1.3.1 2.2.1 - 2.9
1.0.0 - 1.1.3 2.2.1 - 2.3

আপনি অ্যান্ড্রয়েড স্টুডিওতে ফাইল > প্রজেক্ট স্ট্রাকচার > প্রোজেক্ট মেনুতে গ্রেডল সংস্করণ নির্দিষ্ট করতে পারেন অথবা কমান্ড লাইন ব্যবহার করে আপনার গ্রেডল সংস্করণ আপডেট করতে পারেন। পছন্দের উপায় হল Gradle Wrapper কমান্ড লাইন টুল ব্যবহার করা, যা gradlew স্ক্রিপ্ট আপডেট করে। নিচের উদাহরণটি Gradle Wrapper ব্যবহার করে Gradle সংস্করণটিকে 8.9 এ সেট করে। দ্রষ্টব্য, Gradle এবং Gradle Wrapper উভয়কেই আপগ্রেড করতে আপনাকে এই কমান্ডটি দুবার চালাতে হবে (আরো তথ্যের জন্য, Gradle Wrapper আপগ্রেড করা দেখুন)।

gradle wrapper --gradle-version 8.9

তবে এটি কিছু ক্ষেত্রে ব্যর্থ হতে পারে, উদাহরণস্বরূপ যদি আপনি এইমাত্র AGP আপডেট করেছেন এবং এটি আর বর্তমান Gradle সংস্করণের সাথে সঙ্গতিপূর্ণ নয়৷ এই ক্ষেত্রে, আপনাকে gradle/wrapper/gradle-wrapper.properties ফাইলে গ্রেডল ডিস্ট্রিবিউশন রেফারেন্স সম্পাদনা করতে হবে। নিচের উদাহরণটি gradle-wrapper.properties ফাইলে Gradle সংস্করণটিকে 8.9 এ সেট করে।

...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.9-bin.zip
...

অ্যান্ড্রয়েড গ্রেডল প্লাগইন এবং অ্যান্ড্রয়েড স্টুডিও সামঞ্জস্য

অ্যান্ড্রয়েড স্টুডিও বিল্ড সিস্টেমটি গ্রেডলের উপর ভিত্তি করে, এবং অ্যান্ড্রয়েড গ্রেডল প্লাগইন (এজিপি) বেশ কয়েকটি বৈশিষ্ট্য যুক্ত করে যা অ্যান্ড্রয়েড অ্যাপ তৈরির জন্য নির্দিষ্ট। নিম্নলিখিত টেবিলে Android স্টুডিওর প্রতিটি সংস্করণের জন্য AGP-এর কোন সংস্করণ প্রয়োজন তা তালিকাভুক্ত করা হয়েছে।

অ্যান্ড্রয়েড স্টুডিও সংস্করণ প্রয়োজনীয় AGP সংস্করণ
মীরকাত | 2024.3.1 3.2-8.9
লেডিবাগ ফিচার ড্রপ | 2024.2.2 3.2-8.8
লেডিবগ | 2024.2.1 3.2-8.7
কোয়ালা ফিচার ড্রপ | 2024.1.2 3.2-8.6
কোয়ালা | 2024.1.1 3.2-8.5
জেলিফিশ | 2023.3.1 3.2-8.4
ইগুয়ানা | 2023.2.1 3.2-8.3
হেজহগ | 2023.1.1 3.2-8.2
জিরাফ | 2022.3.1 3.2-8.1
ফ্লেমিংগো | 2022.2.1 3.2-8.0
অ্যান্ড্রয়েড স্টুডিও সংস্করণ প্রয়োজনীয় AGP সংস্করণ
বৈদ্যুতিক ঢল | 2022.1.1 3.2-7.4
ডলফিন | 2021.3.1 3.2-7.3
চিপমাঙ্ক | 2021.2.1 3.2-7.2
বাম্বলবি | 2021.1.1 3.2-7.1
আর্কটিক ফক্স | 2020.3.1 3.1-7.0

অ্যান্ড্রয়েড গ্রেডল প্লাগইনে নতুন কী রয়েছে সে সম্পর্কে তথ্যের জন্য, অ্যান্ড্রয়েড গ্রেডল প্লাগইন রিলিজ নোটগুলি দেখুন।

Android API স্তরের জন্য সরঞ্জামগুলির ন্যূনতম সংস্করণ

অ্যান্ড্রয়েড স্টুডিও এবং এজিপির ন্যূনতম সংস্করণ রয়েছে যা একটি নির্দিষ্ট API স্তর সমর্থন করে। আপনার প্রজেক্টের targetSdk বা compileSdk প্রয়োজনের তুলনায় অ্যান্ড্রয়েড স্টুডিও বা এজিপি-এর নিম্ন সংস্করণ ব্যবহার করলে অপ্রত্যাশিত সমস্যা দেখা দিতে পারে। আমরা Android OS এর পূর্বরূপ সংস্করণগুলিকে লক্ষ্য করে এমন প্রকল্পগুলিতে কাজ করার জন্য Android Studio এবং AGP-এর সর্বশেষ পূর্বরূপ সংস্করণ ব্যবহার করার পরামর্শ দিই। আপনি একটি স্থিতিশীল সংস্করণের পাশাপাশি অ্যান্ড্রয়েড স্টুডিওর পূর্বরূপ সংস্করণ ইনস্টল করতে পারেন।

অ্যান্ড্রয়েড স্টুডিও এবং এজিপির ন্যূনতম সংস্করণগুলি নিম্নরূপ:

API স্তর ন্যূনতম অ্যান্ড্রয়েড স্টুডিও সংস্করণ ন্যূনতম এজিপি সংস্করণ
বাকলাভা প্রিভিউ মীরকাত | 2024.3.1 ৮.৯.০
35 কোয়ালা ফিচার ড্রপ | 2024.2.1 8.6.0
34 হেজহগ | 2023.1.1 8.1.1
33 ফ্লেমিংগো | 2022.2.1 7.2

সংস্করণ পরিবর্তন (নভেম্বর 2020)

অন্তর্নিহিত গ্রেডল বিল্ড টুলের সাথে আরও ঘনিষ্ঠভাবে মিলতে আমরা অ্যান্ড্রয়েড গ্রেডল প্লাগইন (এজিপি) এর সংস্করণ নম্বর আপডেট করছি।

এখানে উল্লেখযোগ্য পরিবর্তনগুলি রয়েছে:

  • AGP এখন শব্দার্থিক সংস্করণ ব্যবহার করবে, এবং ব্রেকিং পরিবর্তনগুলি বড় রিলিজের জন্য লক্ষ্য করা হবে।

  • গ্রেডল প্রধান রিলিজের সাথে সারিবদ্ধভাবে প্রতি বছর AGP-এর একটি বড় সংস্করণ প্রকাশিত হবে।

  • AGP 4.2 এর পরে রিলিজ হবে 7.0 সংস্করণ এবং Gradle সংস্করণ 7.x এ আপগ্রেড করতে হবে। AGP-এর প্রতিটি বড় রিলিজের জন্য অন্তর্নিহিত Gradle টুলে একটি বড় সংস্করণ আপগ্রেডের প্রয়োজন হবে।

  • এপিআইগুলি প্রায় এক বছর আগে অবচয় করা হবে, প্রতিস্থাপন কার্যকারিতা একই সাথে উপলব্ধ করা হবে। পরবর্তী বড় আপডেটের সময় প্রায় এক বছর পরে অপসারিত APIগুলি সরানো হবে।

সামঞ্জস্য

অ্যান্ড্রয়েড গ্রেডল প্লাগইন 8.9 সমর্থন করে সর্বাধিক API স্তর হল API স্তর 35। এখানে অন্যান্য সামঞ্জস্যের তথ্য রয়েছে:

ন্যূনতম সংস্করণ ডিফল্ট সংস্করণ নোট
গ্রেডল ৮.১১.১ ৮.১১.১ আরও জানতে, Gradle আপডেট করা দেখুন।
SDK বিল্ড টুলস ৩৫.০.০ ৩৫.০.০ SDK বিল্ড টুল ইনস্টল বা কনফিগার করুন
এনডিকে N/A 27.0.12077973 NDK এর একটি ভিন্ন সংস্করণ ইনস্টল বা কনফিগার করুন
জেডিকে 17 17 আরও জানতে, JDK সংস্করণ সেট করা দেখুন।

স্থির সমস্যা

অ্যান্ড্রয়েড গ্রেডল প্লাগইন 8.9.0

স্থায়ী সমস্যা
অ্যান্ড্রয়েড গ্রেডল প্লাগইন
অপর্যাপ্ত ডিস্ক স্থানের সাথে GMD সেটআপ টাস্ক ব্যর্থ হলে একটি কর্মযোগ্য ত্রুটি বার্তা প্রদান করুন
com.android.settings প্লাগইন টার্গেটএসডিকে চিনতে পারে না
অসহায় ত্রুটি ''compileSdkVersion নির্দিষ্ট করা নেই। দয়া করে build.gradle এ যোগ করুন"
বিল্ড মেনুতে "ক্লিন বিল্ড" নেই
হতে পারে AGP এর অন্তর্নির্মিত Kotlin সমর্থন স্বয়ংক্রিয় যোগ kotlin stdlib নির্ভরতা
অন্তর্নির্মিত কোটলিন সমর্থন পরিচালনা করতে shouldConfigureKotlinPlatformAttribute আপডেট করুন
'checkTestedAppObfuscationRelease'-এর জন্য ত্রুটি বার্তায় kotlin gradle সিনট্যাক্স দিন
ফিউজড লাইব্রেরি ত্রুটি যখন অমীমাংসিত নির্ভরতা উন্নত করা যেতে পারে
gradle.properties থেকে সিস্টেমের বৈশিষ্ট্যগুলি আলাদা প্রক্রিয়ায় R8 গ্রেডল ওয়ার্কারদের কাছে পাঠানো হয় না
ফাইল টাইপ হিসাবে BuiltArtifact.outputFile করুন
ফিউজড লাইব্রেরিতে নামস্থান প্রদান না করা একটি ভাল ত্রুটি বার্তা দেয় না
AGP 7.1.0-alpha08-এ lint বিকল্পগুলি stdout-এর অনুমতি দেয় না
অ্যান্ড্রয়েড গ্রেডল প্লাগইন: ভেরিয়েন্টের উত্স সেটের নাম প্রকাশ করা উচিত
কনফিগারেশন ক্যাশে TERM এনভায়রনমেন্ট ভেরিয়েবলের সেটিং থেকে ভঙ্গুর
পরিসংখ্যান সক্ষম হলে AndroidComponentsExtension.addSourceSetConfigurations ভেঙে যায়
ইনিশিয়ালাইজেশন স্ক্রিপ্ট 'C:\Users\mypc\AppData\Local\Temp\ijresolvers2.gradle' লাইন: 162
পরিসংখ্যান সক্ষম হলে AndroidComponentsExtension.addSourceSetConfigurations ভেঙে যায়
ডেক্সার (D8)
java.lang.VerifyError: যাচাইকারী প্রত্যাখ্যাত ক্লাস: [0x430] copy1 v2<-v264 type=Undefined cat=3
লিন্ট
Lint gradle চেকের সাথে লিন্ট ক্র্যাশ হয়
লিন্ট স্ট্যাকট্রেসে ব্যতিক্রম বার্তা ছাড়াই InstantiationException-এর সাথে ব্যর্থ হয়
ফলস পজিটিভ লিন্ট চেক android.permission.SCHEDULE_EXACT_ALARM শুধুমাত্র সিস্টেম অ্যাপে দেওয়া হয়
StringFormatInvalid চেক রচনা stringResource পদ্ধতিতে প্রয়োগ করা উচিত
RequiresFeature টীকা Kotlin ফাইলের জন্য কাজ করে না
kotlin android.os.Handler রিমুভ কলব্যাক রানযোগ্য
shift ব্যবহার করে ধ্রুবকের ব্যবহারের পরিবর্তে সংজ্ঞায় ভুল কনস্ট্যান্ট লিন্ট
ভুল কনস্ট্যান্ট লিন্ট দুবার প্রদর্শিত হচ্ছে
অসমর্থিত Java nio API সহ API 26 এর নিচে রানটাইম ব্যতিক্রম (কোন লিন্ট ত্রুটি ছাড়াই)
লিন্ট পরীক্ষায় ব্যক্তিগত সাহায্যকারী পদ্ধতিতেও RequiresApi ব্যবহার প্রতিরোধ করে
Android স্টুডিওতে .hasRoute(Route::class) ব্যবহার করার সময় K2 মোড RestrictedApi সতর্কতা ছুড়ে দেয়
লিন্ট পরীক্ষায় @SdkSuppress এর সাথে @RequiresExtension প্রতিস্থাপন করার পরামর্শ দেয়, যা SDK এক্সটেনশন সমর্থন করে না
লিন্ট ভুলভাবে একটি অপ্রয়োজনীয় নেস্টেড লেআউট রিপোর্ট করে যখন fitSystemWindows-এর সাথে একটি FrameLayout ব্যবহার করা হয় একটি চাইল্ড RelativeLayout যাতে কাস্টম প্যাডিংয়ের প্রয়োজন হয়।
CoarseFineLocation lint নিয়ম একটি maxSdkVersion অ্যাট্রিবিউটের জন্য দায়ী নয়
AppLinkSplitToWebAndCustom lint 8.7.3-এ অজানা সমস্যা
লিন্ট চেক StringEscapeDetector ক্র্যাশ "\\" এ
সিল করা ইন্টারফেসে `@Parcelize` টীকাটির জন্য ভুল লিন্ট সতর্কতা
AS 2024.3.1.4 কোটলিন পাঠ্য সম্পাদনা করার সময় মাঝে মাঝে ঝুলে থাকে।
লিন্ট ইন্টিগ্রেশন
অ্যাপ বান্ডিল তৈরি করার সময় lintVitalRelease স্বয়ংক্রিয়ভাবে চালানো হয় না
সঙ্কুচিত (R8)
AGP 8.8 এ আপগ্রেড করার পরে Gson proguard সঠিকভাবে কাজ করছে না
java.lang.VerifyError: যাচাইকারী প্রত্যাখ্যান করেছে ক্লাস
AGP 8.10.0-alpha04-এ অন্তর্ভুক্ত R8 দিয়ে মিনিফাইড করা হলে Leanback ক্র্যাশ হয়