Android Gradle Plugin 8.3.0 (ফেব্রুয়ারি, ২০২৪)

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

মানানসই

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

ন্যূনতম ভার্সন ডিফল্ট ভার্সন নোট
Gradle ৮.৪ ৮.৪ আরও জানতে, Gradle আপডেট করা দেখুন।
SDK Build Tools 34.0.0 34.0.0 SDK বিল্ড টুল ইনস্টল বা কনফিগার করুন।
NDK N/A ২৫.১.৮৯৩৭৩৯৩ NDK-এর অন্য কোনও ভার্সন ইনস্টল বা কনফিগার করুন।
JDK 17 17 আরও জানতে, JDK ভার্সন সেট করা দেখুন।

Android Gradle প্লাগ-ইন 8.3-তে নিম্নলিখিত নতুন ফিচার রয়েছে।

প্যাচ রিলিজ

Android Studio Iguana এবং Android Gradle plugin 8.3-এ প্রকাশিত প্যাচ রিলিজের তালিকা নিচে দেওয়া হল।

Android Studio Iguana | 2023.2.1 প্যাচ ২ এবং AGP 8.3.2 (এপ্রিল ২০২৪)

এই মাইনর আপডেটে এইসব সমস্যার সমাধান অন্তর্ভুক্ত রয়েছে।

Android Studio Iguana | 2023.2.1 প্যাচ ১ এবং AGP 8.3.1 (মার্চ ২০২৪)

এই মাইনর আপডেটে এইসব সমস্যার সমাধান অন্তর্ভুক্ত রয়েছে।

Gradle ভার্সন ক্যাটালগের জন্য সহায়তা

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

কোড সম্পূর্ণ করা ও নেভিগেশন

আপনি TOML ফাইল ফর্ম্যাটে কোনও ভার্সন ক্যাটালগ এডিট করলে অথবা কোনও ভার্সন ক্যাটালগ থেকে কোনও বিল্ড ফাইলে কোনও ডিপেন্ডেন্সি যোগ করলে, Android Studio কোড সম্পূর্ণ করার সুবিধা দেয়। কোড সম্পূর্ণ করার সুবিধা ব্যবহার করতে, Ctrl+Space প্রেস করুন (macOS-এ Command+Space)। এছাড়াও, আপনি Ctrl+b (macOS-এ Command+b) প্রেস করে আপনার অ্যাপের build.gradle ফাইলে থাকা ডিপেন্ডেন্সি রেফারেন্স থেকে ভার্সন ক্যাটালগে যেখানে এটি ঘোষণা করা হয়েছে সেখানে দ্রুত নেভিগেট করতে পারবেন।

ডিপেন্ডেন্সি যোগ করার সময় কোড সম্পূর্ণ করা

প্রোজেক্ট স্ট্রাকচার ডায়ালগের সাথে ইন্টিগ্রেশন

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

প্রোজেক্ট স্ট্রাকচার ডায়ালগে ভার্সন ক্যাটালগ থেকে ভেরিয়েবল

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

প্রোজেক্ট স্ট্রাকচার ডায়ালগে ভার্সন ক্যাটালগ থেকে ডিপেন্ডেন্সি

পরিচিত সমস্যা ও সীমাবদ্ধতা

Android Studio-তে Gradle ভার্সন ক্যাটালগ সাপোর্ট সংক্রান্ত নিম্নলিখিত সমস্যা বা সীমাবদ্ধতাগুলি জানা আছে।

  • Kotlin স্ক্রিপ্ট ফাইলে প্লাগ-ইন এলিয়াস ঘোষণা হাইলাইট করার সময় সমস্যা: আপনি যখন alias(libs.plugins.example) ফর্মের একটি প্লাগ-ইন ঘোষণা যোগ করেন, তখন এডিটর libs অংশের নিচে একটি লাল আন্ডারলাইন যোগ করে। Gradle ভার্সন ৮.০ ও এর আগের ভার্সনে এই সমস্যাটি দেখা গেছে এবং Gradle-এর ভবিষ্যতের কোনও রিলিজে এটি সমাধান করা হবে।

  • TOML ফর্ম্যাটে ভার্সন ক্যাটালগের জন্য Android Studio সহায়তা: Android Studio কোড সম্পূর্ণ করা, নেভিগেশন ও প্রজেক্ট স্ট্রাকচার ডায়ালগ সংক্রান্ত সহায়তা শুধুমাত্র TOML ফাইল ফর্ম্যাটে সংজ্ঞায়িত ভার্সন ক্যাটালগের জন্য উপলভ্য। তবে, আপনি এখনও সরাসরি settings.gradle ফাইলে একটি ভার্সন ক্যাটালগ যোগ করতে এবং আপনার প্রোজেক্টে এর ডিপেন্ডেন্সি ব্যবহার করতে পারবেন।

  • KTS বিল্ড ফাইলের জন্য নেভিগেশন কাজ করে না: Control+ক্লিক (macOS-এ Command+ক্লিক) ব্যবহার করে ভার্সন ক্যাটালগে ডিপেন্ডেন্সি ডেফিনিশনে নেভিগেট করা এখনও Kotlin স্ক্রিপ্ট ব্যবহার করে লেখা বিল্ড ফাইলের জন্য কাজ করে না।

  • Firebase Assistant সরাসরি বিল্ড স্ক্রিপ্টে ডিপেন্ডেন্সি যোগ করে: ভার্সন ক্যাটালগের মাধ্যমে না করে Firebase Assistant সরাসরি আপনার বিল্ড স্ক্রিপ্টে ডিপেন্ডেন্সি যোগ করে।

  • "ব্যবহার খুঁজে দেখুন" ফাংশনালিটি কাজ করে না: বিল্ড ফাইল KTS বা Groovy যাই হোক না কেন, অন্য বিল্ড ফাইলে ভার্সন ক্যাটালগ ভেরিয়েবলের ব্যবহার খুঁজে দেখা এখনও কাজ করে না। অর্থাৎ, কোনও ভার্সন ক্যাটালগে ভেরিয়েবলের ডেফিনিশনে Control+ক্লিক করলে (macOS-এ Command+ক্লিক করলে) সেই বিল্ড ফাইলে নিয়ে যাওয়া হয় না যেখানে ভেরিয়েবলটি ব্যবহার করা হয়েছে।

  • Android Studio-তে'প্রোজেক্ট স্ট্রাকচার' ডায়ালগ একাধিক ক্যাটালগ ফাইল দেখায় যদি সেগুলি রুট gradle ফোল্ডারে থাকে, কিন্তু কম্পোজিট বিল্ডের ক্যাটালগ দেখায় না। যেমন, আপনার যদি দুটি ক্যাটালগ ফাইল থাকে—একটি আপনার অ্যাপের জন্য এবং একটি কম্পোজিট বিল্ডের জন্য—তাহলে প্রোজেক্ট স্ট্রাকচার ডায়ালগ শুধুমাত্র অ্যাপ ক্যাটালগ ফাইল দেখায়। আপনি কম্পোজিট বিল্ড ব্যবহার করতে পারবেন, তবে আপনাকে সরাসরি এর TOML ফাইল এডিট করতে হবে।

SDK সংক্রান্ত অতিরিক্ত ইনসাইট: নীতি সংক্রান্ত সমস্যা

Android Studio, build.gradle.kts এবং build.gradle ফাইল ও প্রোজেক্ট স্ট্রাকচার ডায়ালগে সেইসব পাবলিক SDK-এর জন্য লিন্ট সতর্কতা দেখায় যেগুলির Google Play SDK ইনডেক্সে Play নীতি লঙ্ঘন আছে। আপনাকে Play নীতি লঙ্ঘনকারী যেকোনও ডিপেন্ডেন্সি আপডেট করতে হবে, কারণ এই লঙ্ঘনগুলি ভবিষ্যতে Google Play Console-এ প্রকাশ করা থেকে আপনাকে আটকাতে পারে। নীতি লঙ্ঘন সংক্রান্ত সতর্কতা Android Studio-তে দেখানো পুরনো ভার্সন সংক্রান্ত সতর্কতার সাথে যোগ করা হয়।

Android Studio compileSdk ভার্সন সাপোর্ট

আপনার প্রজেক্টে এমন compileSdk ব্যবহার করা হলে Android Studio একটি সতর্কতা দেখায় যা Android Studio-এর বর্তমান ভার্সনে কাজ করে না। এছাড়াও, উপলভ্য হলে, এটি Android Studio-এর এমন একটি ভার্সনে আপগ্রেড করার সাজেশন দেয় যা আপনার প্রজেক্টের ব্যবহার করা compileSdk সাথে কাজ করে। মনে রাখবেন যে Android Studio আপগ্রেড করার জন্য আপনাকে AGP-ও আপগ্রেড করতে হতে পারে। এছাড়াও, আপনার প্রজেক্টে ব্যবহৃত compileSdk AGP-র বর্তমান ভার্সনে কাজ না করলে, AGP বিল্ড টুল উইন্ডোতে একটি সতর্কতা দেখায়।

Lint-এর আচরণে পরিবর্তন

Android Gradle plugin 8.3.0-alpha02 থেকে শুরু করে, কোনও মডিউলে lint চালানোর সময়, মডিউলের মূল ও টেস্ট কম্পোনেন্টের জন্য আলাদা lint বিশ্লেষণ টাস্ক চালানো হয়। পারফর্ম্যান্স উন্নত করার জন্য এই পরিবর্তন করা হয়েছে। আগের আচরণে ফিরে যেতে, আপনার gradle.properties ফাইলে android.experimental.lint.analysisPerComponent=false সেট করুন।

ডিফল্ট হিসেবে সুনির্দিষ্ট রিসোর্স সরিয়ে দেওয়া চালু থাকে

প্রিসাইজ রিসোর্স শ্রিনকিং, যা resources.arsc ফাইল থেকে অব্যবহৃত এন্ট্রি সরিয়ে দেয় এবং অব্যবহৃত রিসোর্স ফাইল বাদ দেয়, তা ডিফল্ট হিসেবে চালু থাকে। এই সঙ্কোচন চালু করা হলে, আপনার রিসোর্স টেবিল ছোট হয়ে যায় এবং শুধু রেফার করা res ফোল্ডার এন্ট্রি APK-তে অন্তর্ভুক্ত করা হয়।

সুনির্দিষ্ট রিসোর্স সঙ্কোচন বন্ধ করতে, আপনার প্রোজেক্টের gradle.properties ফাইলে android.enableNewResourceShrinker.preciseShrinking-কে false হিসেবে সেট করুন।

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

Android Gradle প্লাগ-ইন 8.3.2

সমাধান করা সমস্যা
Android Gradle Plugin
AGP 8.3-এ ডিএসগারিং চালু থাকলে ডেডলক হতে পারে
AGP 8.3, Task-এর জন্য zipApks-কে ভেঙে দেয়
Lint ইন্টিগ্রেশন
Lint KMP ডিপেন্ডেন্সি আলাদা করতে পারছে না

Android Gradle প্লাগ-ইন 8.3.1

সমাধান করা সমস্যা
Android Gradle Plugin
MergeJavaResourcesTask ইনক্রিমেন্টাল ইনপুট ম্যানেজ করা সংক্রান্ত সমস্যা
Lint ইন্টিগ্রেশন
AGP 8.3.0-rc02-এ Lint, সোর্স সেটের ভাইবোনের ধরন সমাধান করতে পারে না

Android Gradle প্লাগ-ইন 8.3.0

সমাধান করা সমস্যা
Android Gradle Plugin
PackageForUnitTest টাস্কের জন্য বিল্ড ক্যাশে অপ্রয়োজনীয়
[AGP 8.1.0] ./gradlew test fails with "Unable to find manifest output" if both splits.abi.isEnable and testOptions.unitTests.isIncludeAndroidResources are true
নেস্টেড গ্র্যাডল কম্পোজিট বিল্ডের সাথে AGP মডেল বিল্ডিং ব্যর্থ হয়
রিসোর্স সরিয়ে দেওয়ার ফলে রিসোর্স আইডি ভুল হয়ে যায়, যার ফলে রানটাইম ক্র্যাশ হয়
দ্বিতীয় ও তার পরের বিল্ডে ন্যূনতম Gradle ভার্সন চেক রান করে না
AGP 8.0.2 থেকে 8.1.0-এ আপডেট করার পরে ':app:mergeReleaseClasses' টাস্ক এক্সিকিউট করা যায়নি
[Gradle 8.4][upgrade] Integration test failure after upgrade due to use of deprecated feature in kotlin gradle plugin
কনফিগারেশন ফেজের সময় ম্যানিফেস্ট ওভারলে ফাইলের অস্তিত্ব চেক করবেন না
MergeJavaResWorkAction সংক্রান্ত সমস্যার ক্ষেত্রে Gradle ডকুমেন্টের লিঙ্ক কাজ করছে না
.gradle/.android/analytics.settings-এর কারণে Gradle 8.1 কনফিগারেশন ক্যাশিং ভেঙে দেয়
AGP-তে ProjectComponentIdentifier.build ছাড়া ProjectComponentIdentifier.projectPath ব্যবহার করা উচিত নয়
AGP "Analytics other plugin to proto: ..."-এর জন্য তথ্য-লেভেল লগিং কমান/সরিয়ে দিন
[Gradle 8.4][আপগ্রেড] ProcessJavaResTask-এ কনফিগারেশনের সময় ফাইল অপারেশন কনফিগারেশন ক্যাশিং ভেঙে দেয়
সিম্বল টেবিল (R.txt) পেতে ভেরিয়েন্ট API
lint স্ট্যান্ডঅ্যালোন প্লাগ-ইন gradleApi() নির্ভরতা সঠিকভাবে ম্যানেজ করে না
AGP ক্লাস/প্রপার্টিতে kDocs খারাপ। `VariantOutput.enable`-এর পরিবর্তে `VariantOutput.enable` ব্যবহার করার পরামর্শ দেওয়া হয়েছে
AGP 8.3.0-alpha02, Windows হোস্ট মেশিনে রিলিজ প্রোফাইল ইনস্টল করতে পারে না
`android.enableDexingArtifactTransform=true` প্রয়োগ করুন
[Gradle 8.4][আপগ্রেড] কনফিগারেশন ফেজে ফাইল ম্যানেজমেন্টের কারণে আপগ্রেড করার পরে ইন্টিগ্রেশন টেস্ট ব্যর্থ হয়েছে
AGP 8.3.0-alpha-02 - `Error: Failed to deserialize cached resource repository.`
[Gradle 8.4][আপগ্রেড] TestLabBuildService-এর কনফিগারেশন ফেজে ফাইল ম্যানেজমেন্টের কারণে আপগ্রেডের পরে ইন্টিগ্রেশন টেস্ট ব্যর্থ হয়েছে
AGP 8.1.0, ইনস্ট্রুমেন্টেড টেস্ট চালানোর পরে অ্যাপ আনইনস্টল করে দেয় - 7.4.2 তা করে না
APK ট্রান্সফর্ম করার ফলে ListingFileRedirectTask-এ সমস্যা হয়
ASSETS আর্টিফ্যাক্ট ট্রান্সফর্ম করলে ইনপুট/আউটপুট লোকেশন ভেঙে যায়
android.experimental.r8.dex-startup-optimization=true-কে ডিফল্ট হিসেবে প্রোমোট করা
নতুন Gradle কনফিগারেশন অ্যালাইনমেন্ট API-তে মাইগ্রেট করা
Kotlin কম্পাইলার IDEA 21.3-এ আপডেট করার চেষ্টা করলে রিসোর্স কম্পাইলেশন ব্যর্থ হয়
আর্টিফ্যাক্ট API সহ Reactive get()
"android.lint.printStackTrace" AGP প্রপার্টিকে স্টেবল ভার্সনে আপগ্রেড করা
AGP 8.1.0: ডায়নামিক ফিচার: exportReleaseConsumerProguardFiles ও extractProguardFiles-এর মধ্যে থাকা পরোক্ষ নির্ভরতা কম্পাইলেশন সংক্রান্ত সমস্যার কারণ হয়
`variant.unitTest.jniLibs.addGeneratedSourceDirectory` কিছু করছে বলে মনে হচ্ছে না
Gradle 8.4-এর সাথে মানানসই হওয়ার জন্য AGP-তে ব্যবহৃত XML পার্সার আপডেট করা
AGP 8.0.1 রিলিজ প্যাকেজ jacoco instrument কাজ করে না
HEDGEHOG REGRESSION: Run বোতাম কয়েক সেকেন্ড দেরিতে দেখাচ্ছে (Creating spec)
AGP 8.3.0-alpha11 রিলিজ APK তৈরি করে যা android.content.res.Resources$NotFoundException সহ স্টার্ট-আপে ক্র্যাশ করে
"android.lint.printStackTrace" AGP প্রপার্টিকে স্টেবল ভার্সনে আপগ্রেড করা
ফিচারের অনুরোধ: com.android.build.api.extension.impl.CURRENT_AGP_VERSION-কে পাবলিক API হিসেবে প্রোমোট করা
SDK Manager-এর stdout-এ লগ সংক্রান্ত তথ্য স্প্যাম করা বন্ধ করা উচিত
DexArchiveBuilderTaskDelegate শুধুমাত্র রিসোর্স লাইব্রেরি মডিউলের ক্ষেত্রে কাজ করেনি
সব থ্রো ডুপ্লিকেট এন্ট্রির জন্য AGP7.4 কাস্টম প্লাগ-ইন ভ্যারিয়েন্ট toTransform: META-INF/MANIFEST.MF ব্যতিক্রম
নতুন ম্যানিফেস্ট ট্যাগ কাজ করে,
স্টুডিও সেটিংসের "ডিকাপেল করা প্রোজেক্ট" লিঙ্কে ক্লিক করলে ভুল জায়গায় নিয়ে যাওয়া হয়।
Javadoc ও SourceJar-এ জেনারেট করা সোর্স যোগ করার বিকল্প দিন
compileSdk ও minCompileSdkVersion সহ ডিপেন্ডেন্সির মধ্যে থাকা পার্থক্য দ্রুত সমাধান করা প্রয়োজন
[Gradle] tools:overrideLibrary-এ অ্যাস্টেরিস্ক (*) কাজ করা উচিত
ম্যানিফেস্ট এডিট করার সময় UI ফ্রিজ হয়ে যাওয়া
AGP 8.2.0-এ JaCoCo ভার্সন সেট করা যাচ্ছে না
ডায়নামিক ফিচার ব্যবহার করে এমন প্রোজেক্টে Android Gradle Plugin 8.2.0 ইনস্টল টাস্ক সম্পূর্ণ করা যায়নি
ডায়নামিক ফিচার ব্যবহার করে এমন প্রোজেক্টে Android Gradle Plugin 8.2.0 ইনস্টল টাস্ক সম্পূর্ণ করা যায়নি
Dexer (D8)
[desugared library] Desugared library ভার্সন 2.1, R8-এর আগের ভার্সনের সাথে মানানসই নয়
এমনকি শুধু D8-এর সাথেও কি অপ্টিমাইজেশন চলছে?
Lint
[Lint] filterIncident ফাংশনে TranslucentViewDetector ক্র্যাশ করে এবং এর ফলে lint ভুল ফলাফল তৈরি করে
TranslucentViewDetector-এর "behind" ভ্যালু গ্রহণ করা উচিত
`property 'variantInputs.name' doesn't have a configured value.` সহ KMP লাইব্রেরিতে Android Lint কাজ করে না।
TranslucentViewDetector ম্যানিফেস্টে ভুল লাইন রিপোর্ট করে
প্রজেক্টের ডিপেন্ডেন্সি ব্যবহার করার সময় lintDebug ভুল করে UseTomlInstead সতর্কতা দেখায়
Android Lint-এর ফ্ল্যাগ করা অন্য প্রোজেক্ট থেকে অপ্রত্যাশিত সমস্যা
বাইন্ডিং ও ক্লিক লিসনারের মধ্যে LINT চেক না করা রিসোর্স সংক্রান্ত ভুল পজিটিভ শনাক্তকরণ
কাস্টম লিন্ট চেক জার ফাইল লোড করা যায়নি: নোডকে TreeNode-এ কাস্ট করা যায় না
ভেরিয়েবল ডিক্লারেশনে অ্যানোটেটেড ক্লাসের ব্যবহারের জন্য visitAnnotationUsage কল করা হয়নি
java.util.NoSuchElementException সহ Lint 31.0.2 কাজ করে না: Array is empty.
kotlin.text.MatchNamedGroupCollection#get(String) API 26 প্রয়োজন সংক্রান্ত কোনও Lint সতর্কতা নেই
lint:TypographyQuotes false negatives: more than one escaped apostrophe are ignored
AGP 8.0.2 lint InvalidId ডিটেক্টর ফলস পজিটিভ
লিন্ট বেসলাইনে LintError সংক্রান্ত সমস্যা যোগ করা হয়েছে
Quickfix Lint কাজ করে না এবং এর ফলে IDE-তে সমস্যা হয়
আংশিক বিশ্লেষণের কারণে পরীক্ষা ধারাবাহিকভাবে ব্যর্থ হওয়া
ভুল পজিটিভ হওয়া সতর্কতার ভুল হাইলাইট
ভেরিয়েবল ডিক্লারেশনে অ্যানোটেটেড ক্লাসের ব্যবহারের জন্য Lint visitAnnotationUsage কল করা হয়নি
অব্যবহৃত রিসোর্স প্রসেসর Gradle বিল্ড ফাইল মুছে দিতে পারে
NewApi লিন্ট চেক "isAtleastU() && otherCondition()" ফাইনাল ফিল্ড বুঝতে পারে না
`LintClient.getSdkHome` থেকে StackOverflow
"প্ল্যাটফর্ম" ডিপেন্ডেন্সি পুরনো হয়ে গেলে Android Studio / Lint আপনাকে জানায় না
সমস্যা: Firebase-bom নির্ভরতা আপডেট করার কোনও সাজেশন নেই
প্রোজেক্ট স্ট্রাকচার (এবং Gradle (?)) Firebase BOM নির্ভরতা খুঁজে পায় না যা নতুন ভার্সনে আপগ্রেড করা যায়।
Lint ইন্টিগ্রেশন
testImplementation ডিপেন্ডেন্সি থেকে DuplicatePlatformClasses লিন্ট সংক্রান্ত সমস্যা
Shrinker (R8)
AGP 8.0.2 থেকে 8.1.0-এ আপগ্রেড করার পরে R8 কাজ করে না
isShrinkResources 8.3.0-alpha11 থেকে alpha14 পর্যন্ত ওভারঅপ্টিমাইজ করে
AGP 8.2.0-এর সাথে R8 Flurry SDK ক্র্যাশ করে
Android - R8-এর কারণে LinearLayoutManager-এর সাবক্লাস ক্র্যাশ করে
R8 v8.2.33, "java.lang.VerifyError: Bad type on operand stack" আপগ্রেড করার পরে রানটাইম ক্র্যাশ
[R8 8.3.21] R8 8.3.21 হল R8 8.1.56-এর থেকে ১.৫৭ এমবি বড়
[R8 8.3.21] R8 8.3.21 হল R8 8.1.56-এর থেকে ১.৫৭ এমবি বড়
class.getInterfaces() খালি রিটার্ন করে
kotlin_dev বট-এ Test SimpleKotlinEnumUnboxingTest ব্যর্থ হয়