অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৩.০ একটি প্রধান রিলিজ, যাতে বিভিন্ন নতুন ফিচার ও উন্নতি অন্তর্ভুক্ত করা হয়েছে।
সামঞ্জস্যতা
অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৩ সর্বোচ্চ যে এপিআই লেভেলটি সমর্থন করে তা হলো এপিআই লেভেল ৩৪। অন্যান্য সামঞ্জস্যতার তথ্য নিচে দেওয়া হলো:
| সর্বনিম্ন সংস্করণ | ডিফল্ট সংস্করণ | নোট | |
|---|---|---|---|
| গ্রেডল | ৮.৪ | ৮.৪ | আরও জানতে, Gradle আপডেট করা দেখুন। |
| এসডিকে বিল্ড টুলস | ৩৪.০.০ | ৩৪.০.০ | এসডিকে বিল্ড টুলস ইনস্টল বা কনফিগার করুন । |
| এনডিকে | প্রযোজ্য নয় | ২৫.১.৮৯৩৭৩৯৩ | NDK-এর একটি ভিন্ন সংস্করণ ইনস্টল বা কনফিগার করুন । |
| জেডিকে | ১৭ | ১৭ | আরও জানতে, JDK সংস্করণ নির্ধারণ দেখুন। |
অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৩-এর নতুন বৈশিষ্ট্যগুলো নিচে দেওয়া হলো।
প্যাচ রিলিজ
নিচে অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা এবং অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৩-এর প্যাচ রিলিজগুলোর তালিকা দেওয়া হলো।
অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা | ২০২৩.২.১ প্যাচ ২ এবং এজিপি ৮.৩.২ (এপ্রিল ২০২৪)
এই ছোট আপডেটটিতে নিম্নলিখিত বাগগুলো সংশোধন করা হয়েছে।
অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা | ২০২৩.২.১ প্যাচ ১ এবং এজিপি ৮.৩.১ (মার্চ ২০২৪)
এই ছোট আপডেটটিতে নিম্নলিখিত বাগগুলো সংশোধন করা হয়েছে।
গ্রেডল সংস্করণ ক্যাটালগের জন্য সমর্থন
অ্যান্ড্রয়েড স্টুডিও TOML-ভিত্তিক গ্রেডল ভার্সন ক্যাটালগ সমর্থন করে, যা এমন একটি ফিচার যার মাধ্যমে আপনি একটি কেন্দ্রীয় স্থানে ডিপেন্ডেন্সিগুলো পরিচালনা করতে এবং বিভিন্ন মডিউল বা প্রজেক্টের মধ্যে সেগুলো শেয়ার করতে পারেন। অ্যান্ড্রয়েড স্টুডিও এখন এডিটর সাজেশন এবং প্রজেক্ট স্ট্রাকচার ডায়ালগের সাথে ইন্টিগ্রেশনের মাধ্যমে ভার্সন ক্যাটালগ কনফিগার করা আরও সহজ করে তুলেছে। গ্রেডল ভার্সন ক্যাটালগ কীভাবে সেট আপ ও কনফিগার করবেন অথবা আপনার বিল্ডকে ভার্সন ক্যাটালগে কীভাবে মাইগ্রেট করবেন , তা জানুন।
কোড সম্পূর্ণকরণ এবং নেভিগেশন
আপনি যখন TOML ফাইল ফরম্যাটে কোনো ভার্সন ক্যাটালগ সম্পাদনা করেন বা কোনো বিল্ড ফাইলে ভার্সন ক্যাটালগ থেকে কোনো ডিপেন্ডেন্সি যোগ করেন, তখন অ্যান্ড্রয়েড স্টুডিও কোড কমপ্লিশনের সুবিধা দেয়। কোড কমপ্লিশন ব্যবহার করতে, Ctrl+Space (macOS-এ Command+Space ) চাপুন। এছাড়াও, Ctrl+b (macOS-এ Command+b ) চেপে আপনি আপনার অ্যাপের build.gradle ফাইলে থাকা কোনো ডিপেন্ডেন্সি রেফারেন্স থেকে ভার্সন ক্যাটালগে সেটির ডিক্লেয়ার করা স্থানে দ্রুত নেভিগেট করতে পারেন।

প্রজেক্ট স্ট্রাকচার ডায়ালগের সাথে ইন্টিগ্রেশন
আপনার প্রজেক্ট যদি TOML ফাইল ফরম্যাটে সংজ্ঞায়িত একটি ভার্সন ক্যাটালগ ব্যবহার করে, তাহলে আপনি অ্যান্ড্রয়েড স্টুডিওতে প্রজেক্ট স্ট্রাকচার ডায়ালগের ভ্যারিয়েবলস ভিউ ( ফাইল > প্রজেক্ট স্ট্রাকচার > ভ্যারিয়েবলস ) থেকে সেখানে সংজ্ঞায়িত ভ্যারিয়েবলগুলো সম্পাদনা করতে পারেন। প্রতিটি ভার্সন ক্যাটালগের জন্য একটি ড্রপ-ডাউন মেনু থাকে, যেখানে সেই ক্যাটালগের ভ্যারিয়েবলগুলোর তালিকা দেখা যায়। কোনো ভ্যারিয়েবল সম্পাদনা করতে, সেটির মানের উপর ক্লিক করে সেটিকে ওভাররাইট করুন। আপনি যখন এই পরিবর্তনগুলো সেভ করবেন, তখন TOML ফাইলটি সেই অনুযায়ী আপডেট হয়ে যাবে।

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

জ্ঞাত সমস্যা এবং সীমাবদ্ধতা
অ্যান্ড্রয়েড স্টুডিওতে গ্রেডল ভার্সন ক্যাটালগ সমর্থনের ক্ষেত্রে নিম্নলিখিতগুলি জ্ঞাত সমস্যা বা সীমাবদ্ধতা রয়েছে।
কোটলিন স্ক্রিপ্ট ফাইলে প্লাগইন অ্যালিয়াস ডিক্লারেশন হাইলাইট করার ক্ষেত্রে ত্রুটি: যখন আপনি
alias(libs.plugins.example)ফর্মের একটি প্লাগইন ডিক্লারেশন যোগ করেন, তখন এডিটরlibsঅংশের নিচে একটি লাল আন্ডারলাইন যোগ করে। এটি গ্রেডল ভার্সন ৮.০ এবং তার নিচের ভার্সনগুলোর একটি পরিচিত সমস্যা এবং গ্রেডলের ভবিষ্যৎ কোনো রিলিজে এর সমাধান করা হবে।অ্যান্ড্রয়েড স্টুডিও শুধুমাত্র TOML ফরম্যাটের ভার্সন ক্যাটালগ সমর্থন করে: বর্তমানে অ্যান্ড্রয়েড স্টুডিওর কোড কমপ্লিশন, নেভিগেশন এবং প্রজেক্ট স্ট্রাকচার ডায়ালগ শুধুমাত্র TOML ফাইল ফরম্যাটে সংজ্ঞায়িত ভার্সন ক্যাটালগগুলোর জন্যই উপলব্ধ। তবে, আপনি এখনও সরাসরি
settings.gradleফাইলে একটি ভার্সন ক্যাটালগ যোগ করতে পারেন এবং আপনার প্রজেক্টে এর ডিপেন্ডেন্সিগুলো ব্যবহার করতে পারেন।KTS বিল্ড ফাইলের জন্য নেভিগেশন সমর্থিত নয়: কোটলিন স্ক্রিপ্ট ব্যবহার করে লেখা বিল্ড ফাইলের ক্ষেত্রে, ভার্সন ক্যাটালগে কোনো ডিপেন্ডেন্সি ডেফিনিশনে যাওয়ার জন্য কন্ট্রোল + ক্লিক (macOS-এ কমান্ড + ক্লিক) এখনও সমর্থিত নয়।
ফায়ারবেস অ্যাসিস্ট্যান্ট ভার্সন ক্যাটালগের মাধ্যমে যোগ না করে, সরাসরি আপনার বিল্ড স্ক্রিপ্টে ডিপেন্ডেন্সি যোগ করে।
"ব্যবহার খুঁজুন" কার্যকারিতা সমর্থিত নয়: একটি ভার্সন ক্যাটালগ ভেরিয়েবলের ব্যবহার অন্যান্য বিল্ড ফাইলে খোঁজা এখনও সমর্থিত নয়, বিল্ড ফাইলটি KTS বা Groovy-তে তৈরি হোক না কেন। অর্থাৎ, একটি ভার্সন ক্যাটালগে থাকা কোনো ভেরিয়েবলের সংজ্ঞার উপর Control + ক্লিক (macOS-এ Command + ক্লিক) করলে সেই বিল্ড ফাইলগুলোতে নিয়ে যায় না যেখানে ভেরিয়েবলটি ব্যবহৃত হয়েছে।
অ্যান্ড্রয়েড স্টুডিওর প্রজেক্ট স্ট্রাকচার ডায়ালগ একাধিক ক্যাটালগ ফাইল দেখায় যদি সেগুলি রুট
gradleফোল্ডারে থাকে, কিন্তু কম্পোজিট বিল্ডের জন্য ক্যাটালগ দেখায় না। উদাহরণস্বরূপ, যদি আপনার দুটি ক্যাটালগ ফাইল থাকে—একটি আপনার অ্যাপের জন্য এবং অন্যটি কম্পোজিট বিল্ডের জন্য—তাহলে প্রজেক্ট স্ট্রাকচার ডায়ালগটি শুধুমাত্র অ্যাপের ক্যাটালগ ফাইলটি দেখাবে। আপনি একটি কম্পোজিট বিল্ড ব্যবহার করতে পারেন, কিন্তু তার TOML ফাইলটি আপনাকে সরাসরি এডিট করতে হবে।
অতিরিক্ত SDK অন্তর্দৃষ্টি: নীতিগত সমস্যা
Google Play SDK Index- এ থাকা পাবলিক SDK-গুলোর প্লে পলিসি লঙ্ঘনের জন্য Android Studio build.gradle.kts ও build.gradle ফাইলগুলিতে এবং প্রজেক্ট স্ট্রাকচার ডায়ালগে লিন্ট ওয়ার্নিং প্রদর্শন করে। আপনার উচিত প্লে পলিসি লঙ্ঘনকারী যেকোনো ডিপেন্ডেন্সি আপডেট করা, কারণ এই লঙ্ঘনগুলো ভবিষ্যতে আপনাকে Google Play Console-এ পাবলিশ করা থেকে বিরত রাখতে পারে। এই পলিসি লঙ্ঘনের সতর্কতাগুলো Android Studio দ্বারা প্রদর্শিত পুরোনো ভার্সনের সতর্কতাগুলোর পরিপূরক হিসেবে কাজ করে।
অ্যান্ড্রয়েড স্টুডিও কম্পাইলএসডিকে সংস্করণ সমর্থন
আপনার প্রজেক্টে ব্যবহৃত compileSdk যদি অ্যান্ড্রয়েড স্টুডিওর বর্তমান সংস্করণ দ্বারা সমর্থিত না হয়, তাহলে এটি একটি সতর্কবার্তা প্রদর্শন করে। সম্ভব হলে, এটি অ্যান্ড্রয়েড স্টুডিওর এমন একটি সংস্করণে আপগ্রেড করার পরামর্শও দেয় যা আপনার প্রজেক্টে ব্যবহৃত compileSdk সমর্থন করে। মনে রাখবেন যে, অ্যান্ড্রয়েড স্টুডিও আপগ্রেড করার জন্য আপনার এজিপি (AGP)-ও আপগ্রেড করার প্রয়োজন হতে পারে । আপনার প্রজেক্টে ব্যবহৃত compileSdk যদি এজিপির বর্তমান সংস্করণ দ্বারা সমর্থিত না হয়, তাহলে এজিপি তার বিল্ড টুল উইন্ডোতেও একটি সতর্কবার্তা প্রদর্শন করে।
লিন্ট আচরণের পরিবর্তন
অ্যান্ড্রয়েড গ্রেডল প্লাগইন 8.3.0-alpha02 থেকে শুরু করে, কোনো মডিউলে লিন্ট (lint) চালানোর সময়, মডিউলটির মেইন (main) এবং টেস্ট (test) কম্পোনেন্টের জন্য আলাদা লিন্ট অ্যানালাইসিস টাস্ক চালানো হয়। এই পরিবর্তনের কারণ হলো পারফরম্যান্স উন্নত করা। আগের আচরণে ফিরে যেতে, আপনার gradle.properties ফাইলে android.experimental.lint.analysisPerComponent=false সেট করুন।
ডিফল্টরূপে সুনির্দিষ্ট সম্পদ সংকোচন চালু থাকে
সুনির্দিষ্ট রিসোর্স সংকোচন, যা resources.arsc ফাইল থেকে অব্যবহৃত এন্ট্রিগুলো সরিয়ে দেয় এবং অব্যবহৃত রিসোর্স ফাইলগুলো নির্মূল করে, তা ডিফল্টরূপে চালু থাকে। যখন এই সংকোচন সক্রিয় করা হয়, তখন আপনার রিসোর্স টেবিলটি ছোট হয়ে যায় এবং শুধুমাত্র রেফারেন্সকৃত res ফোল্ডারের এন্ট্রিগুলোই APK-তে অন্তর্ভুক্ত হয়।
সুনির্দিষ্ট রিসোর্স সঙ্কুচিতকরণ বন্ধ করতে, আপনার প্রোজেক্টের gradle.properties ফাইলে android.enableNewResourceShrinker.preciseShrinking এর মান false সেট করুন।
সমাধান করা সমস্যাগুলি
অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৩.২
| সমাধান করা সমস্যাগুলি | |||
|---|---|---|---|
| অ্যান্ড্রয়েড গ্রেডল প্লাগইন |
| ||
| লিন্ট ইন্টিগ্রেশন |
| ||
অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৩.১
| সমাধান করা সমস্যাগুলি | ||
|---|---|---|
| অ্যান্ড্রয়েড গ্রেডল প্লাগইন |
| |
| লিন্ট ইন্টিগ্রেশন |
| |
অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৩.০
| সমাধান করা সমস্যাগুলি | ||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| অ্যান্ড্রয়েড গ্রেডল প্লাগইন |
| |||||||||||||||||||||||||||||||||||||||||||||||||
| ডেক্সার (ডি৮) |
| |||||||||||||||||||||||||||||||||||||||||||||||||
| লিন্ট |
| |||||||||||||||||||||||||||||||||||||||||||||||||
| লিন্ট ইন্টিগ্রেশন |
| |||||||||||||||||||||||||||||||||||||||||||||||||
| সঙ্কোচনকারী (R8) |
| |||||||||||||||||||||||||||||||||||||||||||||||||