Android Gradle প্লাগ-ইন 9.2 হল একটি মাইনর রিলিজ যাতে বিভিন্ন নতুন ফিচার ও উন্নতি অন্তর্ভুক্ত রয়েছে।
মানানসই
Android Gradle plugin 9.2-এর সাথে কাজ করে এমন সর্বাধিক API লেভেল হল API লেভেল 37.0. এখানে অন্যান্য কম্প্যাটিবিলিটি সংক্রান্ত তথ্য দেওয়া হল:
| ন্যূনতম ভার্সন | ডিফল্ট ভার্সন | নোট | |
|---|---|---|---|
| Gradle | 9.4.1 | 9.4.1 | আরও জানতে, Gradle আপডেট করা দেখুন। |
| SDK Build Tools | ৩৬.০.০ | ৩৬.০.০ | SDK বিল্ড টুল ইনস্টল বা কনফিগার করুন। |
| NDK | N/A | 28.2.13676358 | NDK-এর অন্য কোনও ভার্সন ইনস্টল বা কনফিগার করুন। |
| JDK | 17 | 17 | আরও জানতে, JDK ভার্সন সেট করা দেখুন। |
| Kotlin Gradle প্লাগ-ইন (KGP) | ২.২.১০ | ২.২.১০ | আরও জানতে, Kotlin Gradle প্লাগ-ইনের উপর রানটাইম নির্ভরতা দেখুন। |
ইউনিফায়েড কভারেজ ও টেস্ট রিপোর্ট
AGP 9.2.0-alpha07, HTML ড্যাশবোর্ড তৈরি করার জন্য টাস্ক নিয়ে আসে যা বিভিন্ন ধরনের টেস্ট (ইউনিট ও ইন্সট্রুমেন্টেশন), মডিউল ও বিল্ড ভ্যারিয়েন্ট থেকে টেস্টের ফলাফল ও কভারেজকে একত্রিত করে। এটি একটি ড্যাশবোর্ডে সামগ্রিক ওভারভিউ প্রদান করে। আরও তথ্যের জন্য, ইউনিফায়েড কোড কভারেজ রিপোর্ট তৈরি করা এবং ইউনিফায়েড টেস্ট রিপোর্ট দেখা নিবন্ধ দেখুন।
R8 পরিবর্তন
AGP 9.2.0-এ নিম্নলিখিত R8 পরিবর্তন অন্তর্ভুক্ত করা হয়েছে।
রানটাইম ইনভিজিবল অ্যানোটেশন রাখার জন্য আরও কঠোর -keepattributes শব্দার্থ
রানটাইম ইনভিজিবল অ্যানোটেশন রানটাইমে পড়া যায় না। তাই D8 শর্তহীনভাবে রানটাইম ইনভিজিবল অ্যানোটেশন সরিয়ে দেয়, এটি পরিবর্তন করার কোনও বিকল্প নেই।
ProGuard-এর সাথে মানানসই হওয়ার জন্য, R8 রানটাইম ইনভিজিবল
অ্যানোটেশন আউটপুট করার সুবিধা দেয়। কিন্তু DEX-এ কম্পাইল করার সময়, রানটাইম ইনভিজিবল অ্যানোটেশন সাধারণত
কখনওই ধরে রাখা উচিত নয়। তবে, রানটাইম দৃশ্যমান অ্যানোটেশন রাখার জন্য R8-এ
কনভেনিয়েন্ট নিয়ম -keepattributes *Annotation* (সরাসরি বা পরোক্ষভাবে
গ্রাহক কিপ নিয়ম থেকে) যোগ করা সাধারণ প্র্যাক্টিস।
তবে এর ফলে রানটাইম ইনভিজিবল অ্যানোটেশনও থেকে যায়।
এই সমস্যা কমানোর জন্য এবং D8-এর আচরণ আরও ভালভাবে ম্যাচ করানোর জন্য, -keepattributes
ওয়াইল্ডকার্ড সহ প্যাটার্ন আর RuntimeInvisibleAnnotations,
RuntimeInvisibleParameterAnnotations এবং RuntimeInvisibleTypeAnnotations-এর সাথে ম্যাচ করে না।
এর ফলে, রানটাইম ইনভিজিবল অ্যানোটেশন শুধুমাত্র তখনই রাখা হবে যদি অ্যাট্রিবিউট
নাম ওয়াইল্ডকার্ড ছাড়া স্পষ্টভাবে উল্লেখ করা হয়।
নিম্নলিখিত কোনও নিয়মই এখন রানটাইম ইনভিজিবল অ্যানোটেশন রাখবে না:
-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*
রানটাইম ইনভিজিবল অ্যানোটেশন বজায় রাখতে, নিম্নলিখিত নিয়ম ব্যবহার করুন:
-keepattributes RuntimeInvisibleAnnotations,
RuntimeInvisibleParameterAnnotations,
RuntimeInvisibleTypeAnnotations
মেম্বার নিয়মে নেগেটিভ নাম ব্যবহার করা যায়
কনফিগারেশন ভাষা আরও উন্নত করা হয়েছে যাতে আপনি এখন নেগেটিভ মেম্বার নামের প্যাটার্ন ম্যাচ করতে পারেন।
যেমন, "ForTesting" দিয়ে শেষ হয় না এমন সব পদ্ধতি ম্যাচ করাতে, নিম্নলিখিত নিয়ম ব্যবহার করুন:
-keepclassmembers class com.example.MyClass {
*** !*ForTesting(...);
}
এছাড়াও, -if
নিয়মের পূর্বশর্তে মেম্বারের নামের প্যাটার্ন বাতিল করা যেতে পারে। কোনও নেগেটিভ মেম্বার নেম প্যাটার্নে ওয়াইল্ডকার্ড থাকলে, -if পরবর্তী নিয়মে সেই ওয়াইল্ডকার্ডের ব্যাক-রেফারেন্স দেওয়া যাবে না।
সমাধান করা সমস্যা
Android Gradle প্লাগ-ইন 9.2.1
| সমাধান করা সমস্যা | ||
|---|---|---|
| Android Gradle Plugin |
|
|
Android Gradle প্লাগ-ইন 9.2.0
| সমাধান করা সমস্যা | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Android Gradle Plugin |
|
|||||||||||||||
| Lint |
|
|||||||||||||||
| Lint ইন্টিগ্রেশন |
|
|||||||||||||||
| Shrinker (R8) |
|
|||||||||||||||