Android Gradle Plugin 8.0.0 (এপ্রিল ২০২৩)

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

মানানসই

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

প্যাচ রিলিজ

Android Gradle Plugin 8.0-এর জন্য প্যাচ রিলিজের তালিকা নিচে দেওয়া হল।

Android Gradle প্লাগ-ইন 8.0.2 (মে ২০২৩)

AGP 8.0.2-এ সমাধান করা ত্রুটির তালিকা দেখতে, Android Studio 2022.2.1-এ বন্ধ করা সমস্যা দেখুন।

Android Gradle প্লাগ-ইন 8.0.1 (মে ২০২৩)

এই ছোটখাটো আপডেটে নিম্নলিখিত সমস্যার সমাধান অন্তর্ভুক্ত রয়েছে:

সমাধান করা সমস্যা
AGP 7.2.2 -> 7.4.0-এ আপগ্রেড করার পরে এই সমস্যা হয়েছে: "টেবিলে প্রদত্ত আইডি সহ কোনও VersionRequirement নেই"
R8 NullPointerException at markTypeAsLive AGP 7.4.1
[R8 4.0.53] Hard class verification failure on Android 11

ব্রেকিং পরিবর্তন: মডিউল-লেভেল বিল্ড স্ক্রিপ্টে নেমস্পেস প্রয়োজন

আপনাকে ম্যানিফেস্ট ফাইলের পরিবর্তে মডিউল-লেভেল build.gradle.kts ফাইলে নেমস্পেস সেট করতে হবে। AGP 7.3 থেকে শুরু করে আপনি namespace DSL প্রপার্টি ব্যবহার করা শুরু করতে পারবেন। আরও জানতে, নেমস্পেস সেট করুন দেখুন।

নেমস্পেস DSL-এ মাইগ্রেট করার সময়, নিম্নলিখিত সমস্যাগুলি সম্পর্কে সচেতন থাকুন:

  • AGP-এর আগের ভার্সন, কিছু ক্ষেত্রে, মূল নেমস্পেস বা অ্যাপ্লিকেশন আইডি থেকে ভুলভাবে টেস্ট নেমস্পেস অনুমান করে। AGP আপগ্রেড অ্যাসিস্ট্যান্ট আপগ্রেড ব্লক করে দেয় যদি এটি দেখতে পায় যে আপনার প্রোজেক্টের প্রধান নেমস্পেস এবং টেস্ট নেমস্পেস একই। আপগ্রেড ব্লক করা থাকলে, আপনাকে ম্যানুয়ালি testNamespace পরিবর্তন করতে হবে এবং সেই অনুযায়ী আপনার সোর্স কোড পরিবর্তন করতে হবে।
  • টেস্ট নেমস্পেস পরিবর্তন করার পরে, আপনার কোড কম্পাইল হতে পারে কিন্তু রানটাইমে আপনার ইনস্ট্রুমেন্টেড টেস্ট ব্যর্থ হতে পারে। আপনার ইনস্ট্রুমেন্টেড টেস্ট সোর্স কোড যদি আপনার androidTest এবং অ্যাপ সোর্স, উভয় জায়গাতেই সংজ্ঞায়িত কোনও রিসোর্সকে রেফার করে, তাহলে এটি হতে পারে।

আরও তথ্যের জন্য, সমস্যা #১৯১৮১৩৬৯১ কমেন্ট #১৯ দেখুন।

ব্রেকিং পরিবর্তন: বিল্ড বিকল্পের ডিফল্ট ভ্যালু

AGP 8.0 থেকে শুরু করে, বিল্ড পারফর্ম্যান্স উন্নত করতে এই ফ্ল্যাগগুলির ডিফল্ট মান পরিবর্তন করা হয়েছে। এইসব পরিবর্তনের কিছু ক্ষেত্রে সাপোর্ট করার জন্য আপনার কোড অ্যাডজাস্ট করতে সাহায্য পেতে, AGP আপগ্রেড অ্যাসিস্ট্যান্ট (টুল > AGP আপগ্রেড অ্যাসিস্ট্যান্ট) ব্যবহার করুন। আপগ্রেড অ্যাসিস্ট্যান্ট আপনাকে নতুন আচরণ বা সেটিং ফ্ল্যাগ অনুযায়ী আপনার কোড আপডেট করার জন্য গাইড করে যাতে আগের আচরণ বজায় থাকে।

পতাকা নতুন ডিফল্ট ভ্যালু আগের ডিফল্ট ভ্যালু নোট
android.defaults.buildfeatures.buildconfig false true AGP 8.0 ডিফল্ট হিসেবে BuildConfig জেনারেট করে না। যেসব প্রোজেক্টে এই বিকল্প প্রয়োজন, সেখানে DSL ব্যবহার করে আপনাকে এই বিকল্প নির্দিষ্ট করতে হবে।
android.defaults.buildfeatures.aidl false true AGP 8.0 ডিফল্ট হিসেবে AIDL সাপোর্ট চালু করে না। যেসব প্রোজেক্টে এই বিকল্প প্রয়োজন, সেখানে DSL ব্যবহার করে আপনাকে এটি উল্লেখ করতে হবে। AGP 9.0-এ এই ফ্ল্যাগ সরিয়ে দেওয়ার পরিকল্পনা করা হয়েছে।
android.defaults.buildfeatures.renderscript false true AGP 8.0 ডিফল্ট হিসেবে RenderScript সাপোর্ট চালু করে না। যেসব প্রোজেক্টে এই বিকল্প প্রয়োজন, সেখানে DSL ব্যবহার করে আপনাকে এই বিকল্প উল্লেখ করতে হবে। এই ফ্ল্যাগটি AGP 9.0 থেকে সরিয়ে দেওয়ার পরিকল্পনা করা হয়েছে।
android.nonFinalResIds true false AGP 8.0 ডিফল্ট হিসেবে নন-ফাইনাল ফিল্ড সহ R ক্লাস জেনারেট করে।
android.nonTransitiveRClass true false AGP 8.0 শুধুমাত্র বর্তমান মডিউলে সংজ্ঞায়িত রিসোর্সের জন্য R ক্লাস তৈরি করে।
android.enableR8.fullMode true false AGP 8.0 ডিফল্ট হিসেবে R8 ফুল মোড চালু করে। আরও জানতে, R8 ফুল মোড দেখুন।

ব্রেকিং পরিবর্তন: এনফোর্স করা বিল্ড বিকল্পের ভ্যালু

AGP 8.0 থেকে শুরু করে, আপনি আর এইসব ফ্ল্যাগের ভ্যালু পরিবর্তন করতে পারবেন না। আপনি gradle.properties ফাইলে সেগুলি উল্লেখ করলে, ভ্যালু উপেক্ষা করা হয় এবং AGP সতর্কতা প্রিন্ট করে।

পতাকা এনফোর্স করা ভ্যালু নোট
android.dependencyResolutionAtConfigurationTime.warn true কনফিগারেশন ফেজ চলাকালীন AGP 8.0 কনফিগারেশন রেজোলিউশন শনাক্ত করলে, এটি একটি সতর্কতা জারি করে, কারণ এটি Gradle কনফিগারেশন টাইমকে নেতিবাচকভাবে প্রভাবিত করে।
android.r8.failOnMissingClasses true আরও ভালো DEX অপ্টিমাইজেশন নিশ্চিত করার জন্য ক্লাস মিসিং থাকলে, R8 ব্যবহার করে এমন বিল্ড AGP 8.0-এ কাজ করে না। এই সমস্যার সমাধান করতে, আপনাকে বাদ পড়ে যাওয়া লাইব্রেরি বা -dontwarn রাখার নিয়ম যোগ করতে হবে। আরও জানতে, R8 শ্রিঙ্কারে ক্লাস সংক্রান্ত সতর্কতা না থাকা দেখুন।
android.testConfig.useRelativePath true ইউনিট টেস্টে Android রিসোর্স, অ্যাসেট ও ম্যানিফেস্ট ব্যবহার করার জন্য সহায়তা চালু করা থাকলে, AGP 8.0 একটি test_config.properties ফাইল তৈরি করে যেটিতে শুধুমাত্র রিলেটিভ পাথ থাকে। এটি নিশ্চিত করে যে Android ইউনিট টেস্ট সবসময় Gradle বিল্ড ক্যাশে ব্যবহার করতে পারে।
android.useNewJarCreator true বিল্ড পারফর্ম্যান্স উন্নত করতে JAR ফাইল তৈরি করার সময় AGP, Zipflinger লাইব্রেরি ব্যবহার করে।
android.bundletool.includeRepositoriesInDependencyReport true AAB ও APK-তে SDK ডিপেন্ডেন্সি সংক্রান্ত তথ্য যোগ করার সুবিধা চালু করা হলে, AGP 8.0 এই তথ্যে প্রোজেক্ট রিপোজিটরির একটি তালিকাও যোগ করে। আরও জানতে, Play Console-এর জন্য ডিপেন্ডেন্সি সংক্রান্ত তথ্য দেখুন।
android.enableArtProfiles true বেসলাইন প্রোফাইল এখন সবসময় জেনারেট করা হয়। আরও বিবরণের জন্য বেসলাইন প্রোফাইল দেখুন।
android.enableNewResourceShrinker true ডিফল্ট হিসেবে নতুন রিসোর্স শ্রিঙ্কার ইমপ্লিমেন্টেশন ব্যবহার করুন। নতুন রিসোর্স শ্রিঙ্কার ডাইনামিক ফিচারের জন্য সহায়তা অন্তর্ভুক্ত করে।
android.enableSourceSetPathsMap true আপেক্ষিক রিসোর্স পাথ ম্যাপিং কম্পিউট করার জন্য ব্যবহার করা হয়, যাতে Gradle বিল্ড আরও ঘনঘন আপ-টু-ডেট থাকে।
android.cacheCompileLibResources true কম্পাইল করা লাইব্রেরি রিসোর্স এখন ডিফল্ট হিসেবে ক্যাশে করা যেতে পারে কারণ Gradle প্রোজেক্ট লোকেশনের সাপেক্ষে রিসোর্স ফাইল ট্র্যাক করে। android.enableSourceSetPathsMap চালু করতে হবে।
android.disableAutomaticComponentCreation true AGP 8.0 ডিফল্ট হিসেবে কোনও SoftwareComponent তৈরি করে না। পরিবর্তে, AGP শুধুমাত্র সেইসব ভেরিয়েন্টের জন্য SoftwareComponents তৈরি করে যেগুলি প্রকাশ করার জন্য কনফিগার করা হয়েছে এবং এর জন্য প্রকাশনা DSL ব্যবহার করা হয়।

এক্সিকিউশন প্রোফাইলের জন্য নতুন স্টেবল ফ্ল্যাগ

AGP-তে নতুন ফ্ল্যাগ android.settings.executionProfile অন্তর্ভুক্ত আছে। SettingsExtension থেকে ডিফল্ট এক্সিকিউশন প্রোফাইল ওভাররাইড করতে এই ফ্ল্যাগ ব্যবহার করুন। আরও জানতে, সেটিংস প্লাগ-ইন ডকুমেন্টেশন দেখুন।

এক্সপেরিমেন্টাল ফ্ল্যাগ প্রিভিউ করতে, প্রিভিউ রিলিজ নোট দেখুন।

Kotlin lazy প্রপার্টি অ্যাসাইনমেন্ট কাজ করে না

আপনার বিল্ড স্ক্রিপ্টের জন্য Gradle-এর Kotlin DSL ব্যবহার করলে, মনে রাখবেন যে Android Studio এবং AGP 8.0, = অপারেটর ব্যবহার করে এক্সপেরিমেন্টাল প্রপার্টি অ্যাসাইনমেন্ট সমর্থন করে না। এই ফিচার সম্পর্কে আরও জানতে, রিলিজ নোট এবং ডকুমেন্টেশন দেখুন।

বিল্ড অ্যানালাইজার টাস্কের বিভাগ

Android Studio Flamingo থেকে শুরু করে, বিল্ড অ্যানালাইজারে এমন টাস্কের জন্য একটি নতুন ডিফল্ট ভিউ রয়েছে যা বিল্ডের সময়কালকে প্রভাবিত করে। আপনার প্রোজেক্টে AGP 8.0 বা তার পরবর্তী ভার্সন ব্যবহার করা হলে, টাস্ক আলাদা আলাদা করে দেখানোর পরিবর্তে, বিল্ড অ্যানালাইজার সেগুলিকে বিভাগ অনুযায়ী গ্রুপ করে। যেমন, Android রিসোর্স, Kotlin বা Dexing-এর মতো নির্দিষ্ট টাস্ক একসাথে গ্রুপ করা হয় এবং তারপরে বিল্ডের সময়সীমা অনুযায়ী সাজানো হয়। এটি আপনাকে শনাক্ত করতে সাহায্য করে কোন বিভাগটি বিল্ড টাইমে সবচেয়ে বেশি প্রভাব ফেলে। প্রতিটি বিভাগ বড় করলে সংশ্লিষ্ট টাস্কের তালিকা দেখা যায়। গ্রুপ না করে, আলাদা আলাদাভাবে টাস্ক দেখতে, এইভাবে বাছাই করা গ্রুপ ড্রপ-ডাউন ব্যবহার করুন।

বিল্ড অ্যানালাইজার টাস্কের বিভাগ।

নতুন সেটিংস প্লাগ-ইন

AGP 8.0.0-alpha09 নতুন সেটিংস প্লাগ-ইন নিয়ে এসেছে। সেটিংস প্লাগ-ইন আপনাকে গ্লোবাল কনফিগারেশন—যে কনফিগারেশন সব মডিউলে প্রযোজ্য—এক জায়গায় সেন্ট্রালাইজ করতে দেয় যাতে আপনাকে একাধিক মডিউলে কনফিগারেশন কপি ও পেস্ট করতে না হয়। এছাড়াও, আপনি টুল এক্সিকিউশন প্রোফাইল বা টুল কীভাবে চালাতে হবে তার জন্য বিভিন্ন নির্দেশাবলী তৈরি করতে এবং সেগুলির মধ্যে পরিবর্তন করতে সেটিংস প্লাগ-ইন ব্যবহার করতে পারেন।

সেটিংস প্লাগ-ইন ব্যবহার করতে, settings.gradle ফাইলে প্লাগ-ইন প্রয়োগ করুন:

apply plugin 'com.android.settings'

গ্লোবাল কনফিগারেশন সেন্ট্রালাইজ করা

গ্লোবাল কনফিগারেশন কনফিগার করতে, settings.gradle ফাইলে নতুন android ব্লক ব্যবহার করুন। এখানে একটি উদাহরণ দেওয়া হল:

android {
  compileSdk 31
  minSdk 28
  ...
}

টুল এক্সিকিউশন প্রোফাইল

এছাড়াও, সেটিংস প্লাগ-ইন আপনাকে কিছু টুলের জন্য এক্সিকিউশন প্রোফাইল তৈরি করতে দেয়। একটি এক্সিকিউশন প্রোফাইল নির্ধারণ করে যে কীভাবে একটি টুল চালানো হয়; আপনি পরিবেশের উপর নির্ভর করে বিভিন্ন এক্সিকিউশন প্রোফাইল বেছে নিতে পারেন। একটি এক্সিকিউশন প্রোফাইলে, আপনি একটি টুলের জন্য JVM আর্গুমেন্ট সেট করতে পারেন এবং এটি একটি পৃথক প্রসেসে চালানোর জন্য কনফিগার করতে পারেন। শুধুমাত্র R8 টুল কাজ করে।

এক্সিকিউশন প্রোফাইল তৈরি করুন এবং settings.gradle ফাইলে ডিফল্ট এক্সিকিউশন প্রোফাইল সেট করুন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

android {
  execution {
    profiles {
      high {
        r8 {
          jvmOptions += ["-Xms2048m", "-Xmx8192m", "-XX:+HeapDumpOnOutOfMemoryError"]
          runInSeparateProcess true
        }
      }
      low {
        r8 {
          jvmOptions += ["-Xms256m", "-Xmx2048m", "-XX:+HeapDumpOnOutOfMemoryError"]
          runInSeparateProcess true
        }
      }
      ci {
        r8.runInSeparateProcess false
      }
    }
    defaultProfile "low"
  }
}

ডিফল্ট প্রোফাইল ওভাররাইড করতে, gradle.properties ফাইলের android.experimental.settings.executionProfile প্রপার্টি ব্যবহার করে অন্য প্রোফাইল বেছে নিন:

android.experimental.settings.executionProfile=high

এছাড়াও, আপনি কমান্ড লাইন ব্যবহার করে এই প্রপার্টি সেট করতে পারবেন, যা আপনাকে বিভিন্ন ওয়ার্কফ্লো সেট-আপ করতে দেয়। যেমন, আপনার যদি একটি কন্টিনিউয়াস ইন্টিগ্রেশন ওয়ার্কফ্লো থাকে, তাহলে আপনি settings.gradle ফাইল পরিবর্তন না করেই এক্সিকিউশন প্রোফাইল পরিবর্তন করতে কমান্ড লাইন ব্যবহার করতে পারেন:

./gradlew assembleRelease \
-Pandroid.experimental.settings.executionProfile=ci

AGP 8.0 চালানোর জন্য JDK 17 প্রয়োজন

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

Android Studio-র মধ্যে AGP-এর মাধ্যমে ব্যবহৃত JDK ভার্সন ম্যানুয়ালি সেট করতে হলে, আপনাকে JDK 17 বা তার পরবর্তী যেকোনও ভার্সন ব্যবহার করতে হবে।

Android Studio থেকে আলাদাভাবে AGP ব্যবহার করার সময়, JDK 17-এর ইনস্টলেশন ডিরেক্টরিতে JAVA_HOME এনভায়রনমেন্ট ভেরিয়েবল বা -Dorg.gradle.java.home কমান্ড-লাইন বিকল্প সেট করে JDK ভার্সন আপগ্রেড করুন।

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

Android Gradle প্লাগ-ইন 8.0.2

সমাধান করা সমস্যা
Shrinker (R8)
ArrayIndexOutOfBoundsException-এর সাথে Compose বিল্ড করার সময় R8 ব্যর্থ হয়
VerifyError: Kotlin 1.8.20-এর সাথে R8 ব্যবহার করার সময় ভেরিফায়ার ক্লাস বাতিল করেছে
AGP 8-এ R8, Google Fit পরিষেবাকে ভেঙে দেয়
ইনপুট নামের সাথে ওভারল্যাপ করে এমন রেসিডুয়াল নাম সহ সোর্স ফাইলের তথ্য সঠিকভাবে দেখানো হয়নি

Android Gradle প্লাগ-ইন 8.0.1

সমাধান করা সমস্যা
Shrinker (R8)
AGP 7.2.2 -> 7.4.0-এ আপগ্রেড করার পরে এই সমস্যা হয়েছে: "টেবিলে প্রদত্ত আইডি সহ কোনও VersionRequirement নেই"
R8 NullPointerException at markTypeAsLive AGP 7.4.1
[R8 4.0.53] Hard class verification failure on Android 11

Android Gradle প্লাগ-ইন 8.0.0

সমাধান করা সমস্যা
Android Gradle প্লাগ-ইন
MergeResources টাস্কে ফ্লেকি বিল্ড ব্যর্থতা
JavaPluginConvention এবং HasConvention বন্ধ করা হয়েছে
নতুন ট্রান্সফর্ম API-এর জন্য ভুল ও অসামঞ্জস্যপূর্ণ ফাইল লোকেশন
Android Gradle প্লাগ-ইনে বন্ধ করে দেওয়া GUtil.toWords(string) ফাংশন ব্যবহার করা উচিত নয়
Android Gradle প্লাগ-ইনের বন্ধ করে দেওয়া ConfigureUtil.configure(closure, target) ফাংশন ব্যবহার করা উচিত নয়
KGP 1.7.20-Beta ব্যবহার করার জন্য AGP টেস্ট আপডেট করুন
Gradle 7.4 কাজ করছে না (AnalyticsService-এর ইনস্ট্যান্স তৈরি করা যায়নি)
AGP 7.4.0-alpha09-এ javac থেকে নতুন "অজানা enum ধ্রুবক"
কনফিগারেশন ক্যাশিং চালু থাকলেও MergeGeneratedProguardFilesCreationAction কনফিগারেশন স্লো
[AGP] IDE মডেলে জেনারেট করা সোর্স ডিরেক্টরি যোগ করুন (Variant API)
JavaPluginConvention এবং HasConvention বন্ধ করা হয়েছে
ডিফল্ট হিসেবে R8-এ ignorewarnings যোগ করবেন না
প্রোগার্ড ফাইল না থাকলে সতর্ক করুন
AGP 7.3.0, গ্রেডেল প্ল্যাটফর্ম প্রোজেক্টের জন্য গ্রেডেল সিঙ্ক ভেঙে দেয়
apksig লাইব্রেরি: ApkVerifier$Result.getV4SchemeSigners() ব্যক্তিগত হিসেবে চিহ্নিত করা হয়েছে
কভারেজ চালু না থাকলে androidJacocoAnt কনফিগারেশন তৈরি করা বন্ধ করুন
লাইব্রেরি কম্পোনেন্টে @IntDef ব্যবহার করলে aar-এ annotations.zip তৈরি হয় না
এবং -এর জন্য সাধারণ সুপার টাইপ খুঁজে পাওয়া যায়নি
LINT_PRINT_STACKTRACE=true-এর একটি গ্রেডেল প্রপার্টি ভার্সন যোগ করুন
AAR-এ পুরনো প্রিফ্যাব আর্টিফ্যাক্ট প্যাকেজ করা হচ্ছে
ডেপ্রিকেশন সংক্রান্ত সতর্কতা সমাধান করতে এবং Gradle 9.0-এর জন্য প্রস্তুত হতে, ডেস্টিনেশন প্রপার্টি থেকে আউটপুট লোকেশন প্রপার্টিতে মাইগ্রেট করুন
JavaCompile টাস্ক সেট-আপ করার সময় `--release` ফ্ল্যাগ বিবেচনা করুন
[AGP-7.3.0-beta03] xml ডিক্লারেশনের পরে খালি লাইন থাকলে ShrinkResourcesNewShrinkerTask ব্যর্থ হয়
ডিবাগ ভেরিয়েন্টে lintVital টার্গেট সাধারণত রান করে
প্রোগার্ড ফাইল না থাকলে সতর্ক করুন
টাস্ক এক্সিকিউশন ফেজে AGP, kotlinOptions.freeCompilerArgs যোগ করার চেষ্টা করে
Gradle সিঙ্ক করা যায়নি: সিঙ্ক করা যায়নি: কারণ অজানা
DependencyReportTask কনফিগারেশন ক্যাশের সাথে মানানসই নয়
build.gradle-এ resValue-এর মাধ্যমে রিসোর্স ওভাররাইড করলে এই সমস্যা হয়: ডুপ্লিকেট রিসোর্স
'ডিবাগ' বিল্ড টাইপে ডিফল্ট সাইনিং কী আছে, অন্যদের নেই
ডায়নামিক ফিচার ও রিসোর্স সরিয়ে দেওয়ার ফলে রানটাইম ক্র্যাশ হয়
'ডিবাগ' বিল্ড টাইপে ডিফল্ট সাইনিং কী আছে, অন্যদের নেই
তৈরি করা সোর্স ডিরেক্টরি লিন্ট মডেলের প্রধান সোর্স প্রোভাইডারে জাভা ডিরেক্টরি হিসেবে তালিকাভুক্ত করা হয়েছে
Gradle 8.0-milestone-2-এর কারণে AGP-তে এক্সেপশন হয়
অ্যাপ ও লাইব্রেরির জন্য ম্যানিফেস্ট মার্জিং অপ্টিমাইজ করুন
javadoc জেনারেশনে gradle-settings-api যোগ করুন
AGP 7.4.0-alpha09-এ javac থেকে নতুন "অজানা enum ধ্রুবক"
AGP 7.4.0-alpha09 এমন বিল্ড তৈরি করে যা Firebase অ্যাপ ডিস্ট্রিবিউশনে আপলোড করা যাবে না
lint টাস্কের আপ-টু-ডেট চেক করার জন্য মডিউলে lint.xml বিবেচনা করা হয় না
Android Gradle প্লাগ-ইন 7.0+ এবং Android টেস্ট সংক্রান্ত সমস্যা: রিসোর্স খুঁজে পাওয়া যাচ্ছে না: আইডি
কোনও পয়েন্টার এক্সেপশন নেই সহ configureCMakeDebug ক্র্যাশ করছে
IllegalAccessError upgrading project to AS2022.2.1.5, FireBasePerfPlugin
"Collection contains no element matching the predicate." এই ক্রিপ্টিক সমস্যার কারণে সিঙ্ক করা যায়নি।
ইনস্ট্রুমেন্টেশন API লোকাল ফাইল ডিপেন্ডেন্সি ট্রান্সফর্ম করে না
7.4 Beta 1-এ আপডেট করার সময় `AnnotationProcessorOptions.arguments are queried` সংক্রান্ত সমস্যা
Gradle পাবলিক প্লাগ-ইন gradle-api-তে সরান এবং BasePlugin.getExtension সরান
r8.jvmArgs ব্যবহার করা হয় না
AGP-এর জন্য ন্যূনতম ভার্সন হিসেবে JDK17 প্রয়োজন
AGP 8.0.0 A8 বেসলাইন প্রোফাইল ব্রেক করে
AGP 8.0-এ CheckAarMetadataTask মেসেজে 'compileSdkVersion' পরিবর্তন করে 'compileSdk' করুন
AGP 7.4.0-rc01, "টাস্ক '...' সম্পূর্ণ হওয়ার আগে map(provider(java.util.Set))-এর ম্যাপ করা ভ্যালু কোয়েরি করা কাজ করে না" মেসেজ সহ ভ্যারিয়েন্ট API-কে ব্রেক করে
-এর কনফিগারেশন ক্যাশে সংক্রান্ত সমস্যা
AGP API ব্যবহার করে Java রিসোর্সে যোগ করলে কনফিগারেশন ক্যাশে ভেঙে যায়
Lint প্লাগ-ইন gradle-api-এর অংশ নয়
DexingFileDependenciesTask.outputKeepRules একটি ডিরেক্টরি কিন্তু OutputFile হিসেবে চিহ্নিত করা হয়েছে
AGP 7.4-এ আপগ্রেড করার ফলে StackOverflowError হয়
টেস্ট ভেরিয়েন্টের জন্য ম্যানিফেস্ট প্লেসহোল্ডার সহ processDebugUnitTestManifest কাজ করছে না
Lint ডিপেন্ডেন্সি ছাড়াই সোর্স সেট তথ্য অ্যাক্সেস করে
বিল্ড সংক্রান্ত সমস্যা API লেভেল ৩৪-এর সাথে সম্পর্কিত, যা উপলভ্য নেই
"আমরা নতুন Android Gradle প্লাগ-ইন ব্যবহার করার সাজেশন দিই" যখন কোনও নতুন প্লাগ-ইন থাকে না
android.injected.testOnly=false কাজ করে না
Dexer (D8)
AS Canary 6 থেকে 7-এ আপগ্রেড করার পরে গ্লোবাল সিন্থেটিক্স সম্পর্কিত Dex মার্জিং সমস্যা
Kotlin মেটাডেটা লাইব্রেরি 0.6.0 ভার্সনে আপডেট করুন
API লেভেল ২৮-৩০-এ JDK-8272564-এর জন্য ওয়ার্কঅ্যারাউন্ড প্রয়োজন বলে মনে হচ্ছে
Lint
ResourceType লিন্ট চেক kotlin সোর্সের জন্য কাজ করছে না
VersionChecks, Kotlin রেঞ্জ চেক ম্যানেজ করে না
InlinedApi র‍্যাপ করা থাকলে ফলস পজিটিভ
openInputStream সংক্রান্ত লিন্ট ফলস পজিটিভ রিসাইকেল
[BuildTool/Lint] ChecksSdkIntAtLeast constructor property
Lint: PartialResults merging works incorrectly
Android Studio নির্দিষ্ট ভার্সনকে ভুলভাবে পুরনো হিসেবে চিহ্নিত করে।
AndroidDeprecationInspection.DeprecationFilter EP কখনও android-plugin.xml ফাইলে রেজিস্টার করা হয় না
AccessibilityDetector লিন্ট চেক সংক্রান্ত ব্যাখ্যা পুরনো হয়ে গেছে
Lint SDK_INT চেক সাময়িক স্থানীয় ভেরিয়েবেল বুঝতে পারে
TestMode.TYPE_ALIAS, Function টাইপকে typealias দিয়ে পরিবর্তন করার সময় সমস্যা হয়েছে
বাগ: বর্তমান কোড ব্লকের বাইরে ObjectAnimator তৈরি করা হলে, এটি শুরু না করার ফলস-পজিটিভ সতর্কতা দেখানো হয় #৩৮
Lint: mergeOnly মোডে অ্যাপ্লিকেশন ইনস্ট্যান্স কোয়েরি করার কারণে NPE
NonConstantResourceId লিন্ট রুল রিসোর্স আইডি থেকে কনস্ট্যান্ট ভ্যালু অ্যাসাইন করার বিষয়টি শনাক্ত করতে পারে না
ভিউ আইডিতে সমস্যা দেখাচ্ছে না
লিন্ট রিসোর্স ক্যাশে ডিসিরিয়ালাইজ করতে না পারার ফলে লিন্ট ত্রুটি দেখা দেয় (তবে এটি একটি সতর্কতা হওয়া উচিত)
AGP Flamingo Alpha 8 Lint NewApi Desugar Regression
TypedArray#close (API 31) ডিসুগার করা হয়নি কিন্তু try-with-resources-এ ব্যবহার করা হলে AS কোনও সতর্কতা দেখায় না
কল রিসিভারের জন্য Lint সঠিক কাস্ট চেক করে না
Lint শুধুমাত্র সরাসরি প্রয়োগ করা ইন্টারফেসের জন্য নিরাপদ কাস্ট চেক করে, উত্তরাধিকারসূত্রে প্রাপ্ত ইন্টারফেসের জন্য নয়
Lint ইন্টিগ্রেশন
বেসলাইন ফাইল বর্তমানে লিন্ট টাস্কের ইনপুট ও আউটপুট হিসেবে কাজ করে
Shrinker (R8)
CF ফ্রেম যাচাইকারীতে NPE / অ্যাসারশন সংক্রান্ত সমস্যা
ফিল্ড লুকআপ ক্যাশে সরানোর পরে রিগ্রেশন
`:app:minifyVariantWithR8` AGP 7.4.0-beta02-এ NullPointerException থ্রো করে
R8: ClassNotFoundException when -allowaccessmodification
মেটাডেটায় কনটেক্সট রিসিভারের জন্য সহায়তা যোগ করুন
java.lang.VerifyError: Verifier rejected class androidx.compose.ui.graphics.colorspace.o: void androidx.compose.ui.graphics.colorspace.o.(java.lang.Object) failed to verify: void androidx.compose.ui.graphics.colorspace.o.(java.lang.Object): [0x0] cannot access instance field java.lang.Object androidx.compose.ui.graphics.colorspace.n.a from object of type Precise Reference: androidx.compose.ui.graphics.colorspace.o
AGP 7.4.0/7.3.1 - পুশ করা যায় না এমন এনকিউয়ার কাজের তালিকায় কোনও অ্যাকশন এনকিউ করার চেষ্টা করা হয়েছে
Renderscript কোড ছোট করা: AGP 7.3.1 থেকে 7.4.0-এ আপগ্রেড করার সময় পারফর্ম্যান্স অনেক কমে যায়