Android Gradle প্লাগ-ইন 9.3.0 (জুলাই ২০২৬)

Android Gradle প্লাগ-ইন 9.3 হল একটি মাইনর রিলিজ যাতে বিভিন্ন নতুন ফিচার ও উন্নতি অন্তর্ভুক্ত রয়েছে।

মানানসই

Android Gradle plugin 9.3-এর সাথে কাজ করে এমন সর্বাধিক API লেভেল হল API লেভেল 37. এখানে অন্যান্য কম্প্যাটিবিলিটি সংক্রান্ত তথ্য দেওয়া হল:

ন্যূনতম ভার্সন ডিফল্ট ভার্সন নোট
Gradle 9.5.0 9.5.0 আরও জানতে, Gradle আপডেট করা দেখুন।
SDK Build Tools ৩৬.০.০ ৩৬.০.০ SDK বিল্ড টুল ইনস্টল বা কনফিগার করুন।
NDK N/A 28.2.13676358 NDK-এর অন্য কোনও ভার্সন ইনস্টল বা কনফিগার করুন।
JDK 17 17 আরও জানতে, JDK ভার্সন সেট করা দেখুন।

স্ট্যান্ডঅ্যালোন R8 কনফিগারেশন অ্যানালাইজার Gradle টাস্ক

Android Gradle প্লাগ-ইন 9.3, আইসোলেশনে R8 কনফিগারেশন অ্যানালাইজার চালানোর জন্য একটি ডেডিকেটেড Gradle টাস্ক নিয়ে আসে। R8 কনফিগারেশন অ্যানালাইজার আপনাকে অ্যাপের কোড ছোট করা ও অস্পষ্ট করার নিয়ম অপ্টিমাইজ করতে সাহায্য করে।

./gradlew :app:analyzeReleaseR8Config

:app:analyzeReleaseR8Config টাস্কটি APK বা বান্ডেল কম্পাইলেশন পাইপলাইন সম্পূর্ণ না করেই রিপোর্ট তৈরি করে। এটি একটি সংক্ষিপ্ত ফিডব্যাক লুপ প্রদান করে, যা কীপ করার নিয়মকে আরও উন্নত করার সময় ডেভেলপারদের ইটারেশনকে দ্রুত করে তোলে। অথবা, আপনি R8 রিলিজ বিল্ড (যেমন assembleRelease বা bundleRelease) রান করিয়ে অটোমেটিক রিপোর্ট তৈরি করতে পারেন।

আরও তথ্যের জন্য, রিপোর্ট তৈরি করার জন্য স্ট্যান্ডঅ্যালোন Gradle টাস্ক রান করুন দেখুন।

সমাধান করা সমস্যা

Android Gradle প্লাগ-ইন 9.3.3

সমাধান করা সমস্যা
Android Gradle Plugin
AGP 9.3.0-এর নতুন অপ্টিমাইজেশন { enable = true } DSL, ApplicationVariant অবজেক্টে isMinifyEnabled সেট করে না
Dexer (D8)
একই ইনপুট/আউটপুটে `mergeProjectDexDebug`-এ D8 9.2.14, 8.13.6-এর থেকে ~৩৮% ধীরে কাজ করে
Shrinker (R8)
D8 ডিবাগ মোড: ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 31 — regression between R8 8.8.34 and 8.9.27
VerifyError: Outliner incorrectly extends try-catch region, causing uninitialized register
R8 `.kotlin_module` ফাইলে `:` সহ নাম লেখে, এর ফলে Windows-এ ফাইলের নাম অবৈধ হয়ে যায়
R8 বিল্ড নন-ডিটারমিনিজম: একই ইনপুট থেকে আলাদা আলাদা dex/ম্যাপিং তৈরি হয় ("LIR-এ ধরে নেওয়া নির্দেশাবলী বজায় রাখুন" থেকে রিগ্রেশন)
R8 9.1-এর সাথে ডুপ্লিকেট ম্যাপিং
AGP মাঝে মাঝে এমন dex ফাইল তৈরি করে যা যাচাই করা যায় না এবং অ্যাপ লঞ্চ করার সময় ক্র্যাশ করে
NullPointerException: Cannot invoke Position.getOutermostCaller() because entryPosition is null
প্রতিটি নিয়মের জন্য বেশি মেমরি ব্যবহার করা
R8: Android 4.4-এ VerifyError

Android Gradle প্লাগ-ইন 9.3.2

সমাধান করা সমস্যা
Lint
JDK 17-এ AGP 9.3 লিন্ট ক্র্যাশ করে — NoSuchMethodError: java.util.List.removeLast() in bundled intellij-core JavaDocParser

Android Gradle প্লাগ-ইন 9.3.1

সমাধান করা সমস্যা
AGP 9.3.1-এ কোনও পাবলিক সমস্যা 'সমাধান করা হয়েছে' হিসেবে চিহ্নিত করা হয়নি

Android Gradle প্লাগ-ইন 9.3.0-rc02

সমাধান করা সমস্যা
AGP 9.3.0-rc02-এ কোনও পাবলিক সমস্যা 'সমাধান করা হয়েছে' হিসেবে চিহ্নিত করা হয়নি

Android Gradle প্লাগ-ইন 9.3.0-rc01

সমাধান করা সমস্যা
AGP 9.3.0-rc01-এ কোনও পাবলিক সমস্যা 'সমাধান করা হয়েছে' হিসেবে চিহ্নিত করা হয়নি

Android Gradle প্লাগ-ইন 9.3.0-alpha12

সমাধান করা সমস্যা
Android Gradle Plugin
বিল্ড করা যায়নি: compile_library_classes_jar-এ classes.jar-এ ফাইল হ্যান্ডেল লিক হওয়ার ফলে IDE রিস্টার্ট না করা পর্যন্ত Windows-এ আবার বিল্ড করা যায় না
Lint
Lint ইমপোর্ট করা Java লাইব্রেরিকে Android প্রোজেক্ট হিসেবে গণ্য করে, কম্পাইল SDK ভার্সন উপেক্ষা করে

Android Gradle প্লাগ-ইন 9.3.0-alpha11

সমাধান করা সমস্যা
AGP 9.3.0-alpha11-এ কোনও পাবলিক সমস্যা 'সমাধান করা হয়েছে' হিসেবে চিহ্নিত করা হয়নি

Android Gradle প্লাগ-ইন 9.3.0-alpha10

সমাধান করা সমস্যা
AGP 9.3.0-alpha10-এ কোনও পাবলিক সমস্যা 'সমাধান করা হয়েছে' হিসেবে চিহ্নিত করা হয়নি

Android Gradle প্লাগ-ইন 9.3.0-alpha09

সমাধান করা সমস্যা
AGP 9.3.0-alpha09-এ কোনও পাবলিক সমস্যা 'সমাধান করা হয়েছে' হিসেবে চিহ্নিত করা হয়নি

Android Gradle প্লাগ-ইন 9.3.0-alpha08

সমাধান করা সমস্যা
AGP 9.3.0-alpha08-এ কোনও পাবলিক সমস্যা 'সমাধান করা হয়েছে' হিসেবে চিহ্নিত করা হয়নি

Android Gradle প্লাগ-ইন 9.3.0-alpha07

সমাধান করা সমস্যা
AGP 9.3.0-alpha07-এ কোনও পাবলিক সমস্যা 'সমাধান করা হয়েছে' হিসেবে চিহ্নিত করা হয়নি

Android Gradle প্লাগ-ইন 9.3.0-alpha06

সমাধান করা সমস্যা
Android Gradle Plugin
JavaDocGenerationTask-এর উচিত হল ওয়ার্কার ব্যবহার করা

Android Gradle প্লাগ-ইন 9.3.0-alpha05

সমাধান করা সমস্যা
Shrinker (R8)
L8 অবফাসকেশন ম্যাপিং app_mapping.txt-এ অন্তর্ভুক্ত নেই

Android Gradle প্লাগ-ইন 9.3.0-alpha04

সমাধান করা সমস্যা
Android Gradle Plugin
KMP keepRules সোর্স সেট করা উপেক্ষা করা হয়েছে, কারণ এতে it.consumerKeepRules.publish = true নেই

Android Gradle প্লাগ-ইন 9.3.0-alpha03

সমাধান করা সমস্যা
Android Gradle Plugin
java.lang.ClassNotFoundException: Didn't find class "com.android.tools.r8.RecordTag" after upgrading gradle to 9.2.0
Lint
রিসোর্স সঙ্কুচিত করা বন্ধ করা থাকলে লিন্ট সংক্রান্ত সমস্যা

Android Gradle প্লাগ-ইন 9.3.0-alpha02

সমাধান করা সমস্যা
Android Gradle Plugin
ফিচারের অনুরোধ: Android Gradle Plugin-এ native_libs_merge_blame_file সংক্রান্ত সহায়তা যোগ করুন
Lint
AnnotationDetector সংক্রান্ত সমস্যার মেসেজে ব্যাকটিক নেই
রিসোর্স সঙ্কুচিত করা বন্ধ করা থাকলে লিন্ট সংক্রান্ত সমস্যা

Android Gradle প্লাগ-ইন 9.3.0-alpha01

সমাধান করা সমস্যা
Android Gradle Plugin
অটোমেটিক জেনারেট করা ভার্সন কোড সংক্রান্ত সমস্যা
AGP: ডিপেন্ডেন্সি নোটেশন হিসেবে প্রোজেক্ট থেকে মাইগ্রেট করা
Lint
UseKtx-এর সাথে লিন্ট ভুল পজিটিভ

Android Gradle প্লাগ-ইন 9.3.0

সমাধান করা সমস্যা
AGP 9.3.0-এ কোনও পাবলিক সমস্যা 'সমাধান করা হয়েছে' হিসেবে চিহ্নিত করা হয়নি

R8 keep নিয়ম কনফিগার করতে আপডেট করা অপ্টিমাইজেশন DSL

R8 অপ্টিমাইজেশনের জন্য কিপ নিয়ম কনফিগার করতে আপডেট করা অপ্টিমাইজেশন DSL যোগ করা হয়েছে। এটি অ্যাপ মডিউল ও লাইব্রেরি মডিউল টেস্টে কাজ করে। আপডেট করা DSL-এর সাথে অপ্টিমাইজেশন কনফিগার করতে, নতুন optimization ব্লক ব্যবহার করুন। অ্যাপের জন্য, অ্যাপ-লেভেল বিল্ড স্ক্রিপ্টে বিল্ড টাইপের মধ্যে optimization ব্লক (যেমন release বা debug) কনফিগার করুন। আপডেট করা অপ্টিমাইজেশন DSL, R8 কনফিগারেশনকে আরও সহজ করে তোলে:

  • অপ্টিমাইজেশন চালু করলে কোড অপ্টিমাইজেশন ও অপ্টিমাইজ করা রিসোর্স কমানো, দুটিই চালু হয়ে যায়।
  • আপনাকে আর ডিফল্ট Android keep rules ফাইল নির্দিষ্ট করতে হবে না।

মনে রাখবেন, পুরনো DSL এখনও কাজ করে।

কীপ রুল নির্ধারণ করার জন্য সোর্স সেটের ভূমিকা

src/<variant>/keepRules/ সোর্স সেটে, file-suffix .keep সহ 'কিপ' নিয়ম রাখুন। আপডেট করা অপ্টিমাইজেশন DSL ও লিগ্যাসি DSL-এ 'কীপ' নিয়মের জন্য সোর্স সেট কাজ করে। অ্যাপ মডিউল, লাইব্রেরি মডিউল এবং Kotlin Multiplatform (KMP) মডিউলে কনজিউমার নিয়মাবলী নির্ধারণ করার উপায় হিসেবে কীপ নিয়মের জন্য সোর্স সেট ব্যবহার করা যায়।