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

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

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

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

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

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

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

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

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

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

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

কোটলিন

plugins {
    id("com.android.application") version "8.7.0" apply false
    id("com.android.library") version "8.7.0" apply false
    id("org.jetbrains.kotlin.android") version "2.0.20" apply false
}

গ্রোভি

plugins {
    id 'com.android.application' version '8.7.0' apply false
    id 'com.android.library' version '8.7.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.0.20' apply false
}

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

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

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

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

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

প্লাগইন সংস্করণ ন্যূনতম প্রয়োজনীয় Gradle সংস্করণ
৮.৭ ৮.৯
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+ ৪.৪+
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.7 এ সেট করে। দ্রষ্টব্য, Gradle এবং Gradle Wrapper উভয়কেই আপগ্রেড করতে আপনাকে এই কমান্ডটি দুবার চালাতে হবে (আরো তথ্যের জন্য, Gradle Wrapper আপগ্রেড করা দেখুন)।

gradle wrapper --gradle-version 8.7

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

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

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

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

অ্যান্ড্রয়েড স্টুডিও সংস্করণ প্রয়োজনীয় AGP সংস্করণ
লেডিবগ | 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 স্তর ন্যূনতম অ্যান্ড্রয়েড স্টুডিও সংস্করণ ন্যূনতম এজিপি সংস্করণ
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.6 সমর্থন করে সর্বাধিক API স্তর হল API স্তর 34। এখানে অন্যান্য সামঞ্জস্যের তথ্য রয়েছে:

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

লিন্ট আচরণ পরিবর্তন

Android Gradle Plugin 8.7.0-alpha08 দিয়ে শুরু করে, Gradle ব্যবহার করে lint চালানোর সময় যদি LintError থাকে, তাহলে lint বিশ্লেষণের কাজটি একটি ব্যতিক্রম ঘটবে। এই পরিবর্তন বিল্ড ক্যাশে ক্যাশে করা থেকে বিরল ত্রুটি প্রতিরোধ করে।

দুর্ভাগ্যবশত, এই পরিবর্তনটি তাদের লিন্ট বেসলাইন ফাইলে প্রকৃত LintError দৃষ্টান্ত সহ প্রজেক্টের জন্য বিল্ড বিল্ড করে। কোন লিন্ট চেক সমস্যা সৃষ্টি করছে সে সম্পর্কে ত্রুটি বার্তাটিতে তথ্য রয়েছে। কিছু ক্ষেত্রে, সংশ্লিষ্ট লাইব্রেরি নির্ভরতা আপডেট করলে সমস্যার সমাধান হতে পারে। যদি না হয়, লাইব্রেরি লেখক এটি ঠিক না করা পর্যন্ত আপনি সমস্যাযুক্ত লিন্ট চেক অক্ষম করতে পারেন।

স্থির সমস্যা

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

স্থায়ী সমস্যা
অ্যান্ড্রয়েড গ্রেডল প্লাগইন
এজিপির দাবি করা উচিত যে এটি এপিআই 35 সমর্থন করে যা শিপ করতে চলেছে
AGP 8.5: আরও অনেকগুলি "mergeDebugResource" কাজ চালানো হয়, বিল্ডগুলিকে ধীর করে দেয়
এজিপিতে ndk 27 ​​কে ডিফল্ট NDK করুন।
এজিপির দাবি করা উচিত যে এটি এপিআই 35 সমর্থন করে যা শিপ করতে চলেছে
এজিপির দাবি করা উচিত যে এটি এপিআই 35 সমর্থন করে যা শিপ করতে চলেছে
NoSuchFileException এর সাথে অ্যান্ড্রয়েড লিন্ট চালানো ব্যর্থ হয়েছে৷
BuildType#init কপি পোস্টপ্রসেসিং ব্লকের সাথে কিন্তু প্রোগার্ড কনফিগারেশন প্রয়োগ করা হয় না
foregroundServiceType ট্যাগের জন্য মার্জ করা যাবে না
NoSuchFileException এর সাথে অ্যান্ড্রয়েড লিন্ট চালানো ব্যর্থ হয়েছে৷
লিন্ট
ViewGroups হিসাবে ব্যবহৃত অবৈধ বস্তুর জন্য Lint চেক করা উচিত
null host সহ uris-এর জন্য "android:host অনুপস্থিত"
8.7.0-alpha04 এ চালু করা লিন্ট চেকের সাথে KtAnalysisSessionProvider অসঙ্গতি
কোটলিনের সাথে PackageManager.ResolveInfoFlags.of ব্যবহার করার সময় "ফলস পজিটিভ" ভুল কনস্ট্যান্ট

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

স্থায়ী সমস্যা
অ্যান্ড্রয়েড গ্রেডল প্লাগইন
agp ডক্সে প্রচুর TBD আছে
লিন্ট
AGP 8.6.1: রিগ্রেশন - কোটলিনের একটি @LongDef এর ভিতরে [Int].toLong() ব্যবহার করার সময় ভুল কনস্ট্যান্ট লিন্ট ব্যর্থতা
HTTP বা https ইন্টেন্ট-ফিল্টার স্কিম সেট করার সময় "অন্তত একটি হোস্ট অবশ্যই নির্দিষ্ট করতে হবে" লিন্ট ত্রুটি

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

স্থায়ী সমস্যা
লিন্ট
AGP 8.7.0 - NavOptionsBuilder.popUpTo-এ লিন্ট ফলস পজিটিভ রেস্ট্রিক্টেডএপিআই
সঙ্কুচিত (R8)
[R8 8.6.27] 'থ্রো নাল' দিয়ে প্রতিস্থাপিত পদ্ধতি বাস্তবায়ন
ডিফল্ট অ্যান্ড্রয়েড প্রোগার্ড ফাইল R8 এর বর্তমান সংস্করণের সাথে ব্যবহার করার সময় একটি সতর্কতা নিক্ষেপ করে
MissingStartupProfileItemsDiagnostic বার্তাটি খুব বড় হলে একটি মেমরির বাইরের ত্রুটির সাথে Gradle ক্লায়েন্টকে ক্র্যাশ করে