অ্যান্ড্রয়েড গ্রেডল প্লাগইন 8.4.0 (এপ্রিল 2024)

অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৪.০ একটি প্রধান রিলিজ, যাতে বিভিন্ন নতুন বৈশিষ্ট্য এবং উন্নতি অন্তর্ভুক্ত রয়েছে।

সামঞ্জস্যতা

অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৪ সর্বোচ্চ যে এপিআই লেভেলটি সমর্থন করে তা হলো এপিআই লেভেল ৩৪। অন্যান্য সামঞ্জস্যতার তথ্য নিচে দেওয়া হলো:

সর্বনিম্ন সংস্করণ ডিফল্ট সংস্করণ নোট
গ্রেডল ৮.৬ ৮.৬ আরও জানতে, Gradle আপডেট করা দেখুন।
এসডিকে বিল্ড টুলস ৩৪.০.০ ৩৪.০.০ এসডিকে বিল্ড টুলস ইনস্টল বা কনফিগার করুন
এনডিকে প্রযোজ্য নয় ২৬.১.১০৯০৯১২৫ NDK-এর একটি ভিন্ন সংস্করণ ইনস্টল বা কনফিগার করুন
জেডিকে ১৭ ১৭ আরও জানতে, JDK সংস্করণ নির্ধারণ দেখুন।

অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৪-এ নিম্নলিখিত নতুন বৈশিষ্ট্যগুলো রয়েছে।

প্যাচ রিলিজ

নিচে অ্যান্ড্রয়েড স্টুডিও জেলিফিশ এবং অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৪-এর প্যাচ রিলিজগুলোর তালিকা দেওয়া হলো।

অ্যান্ড্রয়েড স্টুডিও জেলিফিশ | ২০২৩.৩.১ প্যাচ ২ এবং এজিপি ৮.৪.২ (জুন ২০২৪)

গুরুত্বপূর্ণ নিরাপত্তা আপডেট: Android Studio Iguana | 2023.2.1 এবং এর পরবর্তী সংস্করণগুলিতে উপলব্ধ GitHub প্লাগইনের একটি নিরাপত্তা দুর্বলতার কারণে অননুমোদিত পক্ষের কাছে অ্যাক্সেস টোকেন ফাঁস হয়ে যেতে পারে।

সমাধান: Jetbrains তাদের IntelliJ প্ল্যাটফর্ম পণ্যগুলিতে সমস্যাটির সমাধান করেছে, এবং এই সমাধানটি এখন Android Studio Jellyfish | 2023.3.1 Patch 2 (2023.3.1.20) -এ উপলব্ধ।

আপনার কাছে যদি ইতিমধ্যেই স্টেবল চ্যানেলের কোনো অ্যান্ড্রয়েড স্টুডিও বিল্ড থাকে, তাহলে Help > Check for Updates (অথবা macOS-এর ক্ষেত্রে Android Studio > Check for Updates )-এ ক্লিক করে আপডেটটি পেতে পারেন। অন্যথায়, সর্বশেষ স্টেবল বিল্ডটি ডাউনলোড করুন

এছাড়াও, আপনি যদি IDE-তে সক্রিয়ভাবে GitHub পুল রিকোয়েস্ট কার্যকারিতা ব্যবহার করে থাকেন, তাহলে আমরা দৃঢ়ভাবে পরামর্শ দিচ্ছি যে প্লাগইনটি দ্বারা ব্যবহৃত যেকোনো GitHub টোকেন বাতিল করে দিন। যেহেতু প্লাগইনটি OAuth ইন্টিগ্রেশন বা পার্সোনাল অ্যাক্সেস টোকেন (PAT) ব্যবহার করতে পারে, অনুগ্রহ করে উভয়ই পরীক্ষা করুন এবং প্রয়োজন অনুযায়ী বাতিল করুন:

  • OAuth ইন্টিগ্রেশনের অ্যাক্সেস প্রত্যাহার করতে, Applications > Authorized OAuth Apps- এ যান এবং JetBrains IDE ইন্টিগ্রেশন টোকেনটির অ্যাক্সেস প্রত্যাহার করুন।
  • PAT-এর অ্যাক্সেস বাতিল করতে, Personal access tokens- এ যান এবং GitHub প্লাগইনের জন্য ইস্যু করা টোকেনটি ডিলিট করুন। ডিফল্ট টোকেনের নাম হলো IntelliJ IDEA GitHub integration plugin , কিন্তু আপনি হয়তো একটি কাস্টম নাম ব্যবহার করছেন।

টোকেন(গুলি)র অ্যাক্সেস প্রত্যাহার করার পর, গিট অপারেশন সহ প্লাগইনের সমস্ত বৈশিষ্ট্য পুনরায় কাজ করানোর জন্য আপনাকে প্লাগইনটি আবার সেট আপ করতে হবে।

যেকোনো অসুবিধার জন্য আমরা ক্ষমাপ্রার্থী এবং সকল ব্যবহারকারীকে তাদের কোড ও ডেটা সুরক্ষিত রাখতে অবিলম্বে আপডেট করার জন্য অনুরোধ করছি।

এই ছোট আপডেটটিতে এই বাগ ফিক্সগুলোও অন্তর্ভুক্ত রয়েছে।

অ্যান্ড্রয়েড স্টুডিও জেলিফিশ | ২০২৩.৩.১ প্যাচ ১ এবং এজিপি ৮.৪.১ (মে ২০২৪)

এই ছোট আপডেটটিতে নিম্নলিখিত বাগগুলো সংশোধন করা হয়েছে।

লাইব্রেরির ক্লাসগুলো সংকুচিত করা হয়েছে

অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৪ থেকে শুরু করে, যদি কোনো অ্যান্ড্রয়েড লাইব্রেরি প্রজেক্ট মিনিফাই করা হয়, তাহলে শ্রাঙ্ক প্রোগ্রাম ক্লাসগুলো ইন্টার-প্রজেক্ট পাবলিশিং-এর জন্য প্রকাশিত হবে। এর মানে হলো, যদি কোনো অ্যাপ অ্যান্ড্রয়েড লাইব্রেরি সাবপ্রজেক্টগুলোর শ্রাঙ্ক সংস্করণের উপর নির্ভর করে, তাহলে APK-তে শ্রাঙ্ক অ্যান্ড্রয়েড লাইব্রেরি ক্লাসগুলো অন্তর্ভুক্ত থাকবে। APK-তে কোনো ক্লাস অনুপস্থিত থাকলে আপনাকে লাইব্রেরি কিপ রুলস (library keep rules) সামঞ্জস্য করতে হতে পারে।

যদি আপনি একটি AAR তৈরি ও প্রকাশ করেন, তাহলে আপনার লাইব্রেরি যে লোকাল জার ফাইলগুলোর উপর নির্ভর করে, সেগুলো AAR-এ অসংকুচিত অবস্থায় অন্তর্ভুক্ত হবে, যার অর্থ হলো কোড শ্রিংকার সেগুলোর উপর চলবে না।

পূর্ববর্তী আচরণে ফিরে যেতে, gradle.properties ফাইলে android.disableMinifyLocalDependenciesForLibraries সেট করুন এবং একটি বাগ রিপোর্ট করুন । AGP-এর ভবিষ্যৎ সংস্করণগুলো থেকে এই ফ্ল্যাগটি সরিয়ে দেওয়া হবে।

সমাধান করা সমস্যাগুলি

অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৪.২

সমাধান করা সমস্যাগুলি
অ্যান্ড্রয়েড গ্রেডল প্লাগইন
মনে হচ্ছে AGP 8.4 CI-তে GMD ডাউনলোডগুলো ভেঙে দিচ্ছে।

অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৪.১

সমাধান করা সমস্যাগুলি
অ্যান্ড্রয়েড গ্রেডল প্লাগইন
জেডিকে ২১ কর্তৃক জাভা ৮ টার্গেট করার সমর্থন বাতিল সংক্রান্ত একটি সতর্কবার্তা দমন করার অনুমতি দিন।
ডেক্সার (ডি৮)
java.lang.VerifyError: যাচাইকারী ক্লাস প্রত্যাখ্যান করেছে
অবফাসকেশনের পরে নতুন সংস্করণ R8 ফরম্যাট রূপান্তর ত্রুটি
মধ্যবর্তী বিল্ডগুলিতে স্টাবগুলির জন্য সম্পূর্ণ গ্লোবাল সিন্থেটিক কন্টেন্ট নাও থাকতে পারে।

অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৪.০

সমাধান করা সমস্যাগুলি
অ্যান্ড্রয়েড গ্রেডল প্লাগইন
JavaCompile-এর জন্য কেন `--release` অপশনটি ব্যবহার করা যায় না, সেই সংক্রান্ত ত্রুটির বার্তাটি উন্নত করুন।
@DoNotCacheByDefault ব্যবহার করে MergeSourceSetFolders-এর ক্যাশিং নিষ্ক্রিয় করুন।
AGP 8.2.0-এ JaCoCo সংস্করণ সেট করা সম্ভব নয়।
DynamicFeatureBuildType-এ isDebuggable অনুপস্থিত।
আন্তঃপ্রকল্প ব্যবহারের জন্য সংকুচিত লাইব্রেরি ক্লাসগুলো সঠিকভাবে প্রকাশিত হচ্ছে না।
জেনারেট করা ফাইলগুলিকে বাদ দিয়ে Variant#sources API প্রদান করুন।
AGP মডেলগুলিতে জাভা-প্ল্যাটফর্ম প্রজেক্ট নির্ভরতা থাকে না।
ExtractAarTransform সেইসব aar ফাইলের জন্য একটি অপুনরুৎপাদনযোগ্য classes.jar তৈরি করে, যেগুলোর কোনো classes.jar ফাইল নেই।
ComposeOptions থেকে sourceInformation কনফিগার করার অনুমতি দিন
android.bundle.DeviceSpec মেসেজে sdk_runtime ফিল্ডটি খুঁজে পাওয়া যাচ্ছে না।
compileOnlyApi-এর জন্য সমর্থন
রিসোর্স প্রসেসিং নিষ্ক্রিয় থাকলে R8 একটি লাইব্রেরি মডিউলে ব্যর্থ হয়।
রূপান্তরের সময় আর্টিফ্যাক্টের নাম পরিবর্তন করার ক্ষমতা যোগ করুন।
sourceSets.androidMain.resources-এর srcDir হিসেবে টাস্ক আউটপুট যোগ করলে কোনো টাস্ক ডিপেন্ডেন্সি তৈরি হয় না।
AndroidPluginVersion.toString() এর শুরুতে ০ না থাকায়
Artifacts.add(FileSystemLocation) আরও সীমাবদ্ধ হওয়া উচিত।
AGP 8.3.0-alpha11 যে রিলিজ APK তৈরি করে, তা android.content.res.Resources$NotFoundException ত্রুটির কারণে চালু হওয়ার সময় ক্র্যাশ করে।
যে প্রজেক্টে ডাইনামিক ফিচার ব্যবহার করা হয়, সেখানে অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.২.০ ইনস্টল টাস্ক ব্যর্থ হয়।
AIDL কম্পাইল IndexOutOfBoundsException ত্রুটির কারণে ব্যর্থ হয়েছে: দৈর্ঘ্য ০-এর জন্য সূচক ০ সীমার বাইরে।
MergeJavaResourcesTask-এর ক্রমবর্ধমান ইনপুট পরিচালনার সমস্যা
AGP 8.3.0-alpha02 এমন কিছু লাইব্রেরির উপর নির্ভরশীল যেগুলিতে পরিচিত নিরাপত্তা দুর্বলতা রয়েছে।
নির্বাচিত অ্যাক্টিভিটি টেমপ্লেটের জন্য androidx.* ডিপেন্ডেন্সি সহ প্রজেক্ট প্রয়োজন।
AGP আপগ্রেড অ্যাসিস্ট্যান্ট ভুলবশত মডিউল থেকে consumerProguardFiles সরিয়ে দেয়
এজিপি আপগ্রেড অ্যাসিস্ট্যান্ট অসীমভাবে লোড হয়
SourceDirectories#static-এর GenerateBuildConfig টাস্কের উপর নির্ভর করা উচিত নয়।
কম্পোজ প্রিভিউ ট্রানজিটিভ ডিপেন্ডেন্সি থেকে ক্লাসগুলি সমাধান করতে অক্ষম।
AGP 8.3 zipApksFor টাস্কটি অকার্যকর করে দেয়।
অ্যান্ড্রয়েড এপিকে-তে প্যাকেজ করা অ্যান্ড্রয়েডএক্স ডেস্কটপ আর্টিফ্যাক্টস
লিন্ট
লিন্ট টেস্টিং ফ্রেমওয়ার্ক GradleModelMocker-এ লাইব্রেরি ভার্সন সেট করার সুযোগ নেই।
Lint K2 UAST: UCallableReferenceExpression ভুল qualifierType রিপোর্ট করছে
ওভারলোডেড ফাংশনগুলির সাথে useK2Uast=true ব্যবহার করলে লিন্ট ফলস পজিটিভ শনাক্ত করুন।
[BuildTool/Lint] ChecksSdkIntAtLeast কনস্ট্রাক্টর প্রপার্টি
লিন্ট ইন্টিগ্রেশন
Lint একটি KMP নির্ভরতার দ্ব্যর্থতা নিরসন করতে অক্ষম