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

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

সামঞ্জস্য

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

প্যাচ রিলিজ

অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.০ এর জন্য প্যাচ রিলিজের একটি তালিকা নিচে দেওয়া হল।

অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.০.২ (মে ২০২৩)

AGP 8.0.2-এ সংশোধন করা বাগগুলির তালিকার জন্য, Android Studio 2022.2.1 বন্ধ হওয়া সমস্যাগুলি দেখুন।

অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.০.১ (মে ২০২৩)

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

সমস্যা সমাধান করা হয়েছে
ত্রুটি: AGP 7.2.2 -> 7.4.0 আপগ্রেড করার পরে "টেবিলে প্রদত্ত আইডি সহ কোনও সংস্করণের প্রয়োজন নেই"
markTypeAsLive AGP 7.4.1-এ R8 NullPointerException
[R8 4.0.53] Android 11-এ হার্ড ক্লাস যাচাইকরণ ব্যর্থতা

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

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

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

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

আরও তথ্যের জন্য, সংখ্যা #191813691 মন্তব্য #19 দেখুন।

ব্রেকিং পরিবর্তন: বিল্ড অপশনের ডিফল্ট মান

AGP 8.0 থেকে শুরু করে, বিল্ড পারফরম্যান্স উন্নত করার জন্য এই ফ্ল্যাগগুলির ডিফল্ট মানগুলি পরিবর্তিত হয়েছে। এই পরিবর্তনগুলির কিছু সমর্থন করার জন্য আপনার কোড সামঞ্জস্য করতে সহায়তা পেতে, AGP আপগ্রেড সহকারী ( Tools > 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 একটি সতর্কতা জারি করে কারণ এটি গ্রেডল কনফিগারেশনের সময়কে নেতিবাচকভাবে প্রভাবিত করে।
android.r8.failOnMissingClasses true AGP 8.0 এমন বিল্ডগুলিকে ব্যর্থ করে যেগুলিতে R8 ব্যবহার করা হয় যদি উন্নত DEX অপ্টিমাইজেশন নিশ্চিত করার জন্য ক্লাস অনুপস্থিত থাকে। এটি সমাধানের জন্য, আপনাকে অনুপস্থিত লাইব্রেরিগুলি যোগ করতে হবে অথবা -dontwarn keep নিয়মগুলি যোগ করতে হবে। আরও বিস্তারিত জানার জন্য, R8 shrinker-এ মিসিং ক্লাস সতর্কতা দেখুন।
android.testConfig.useRelativePath true যখন ইউনিট পরীক্ষায় অ্যান্ড্রয়েড রিসোর্স, সম্পদ এবং ম্যানিফেস্ট ব্যবহারের জন্য সমর্থন সক্রিয় করা হয়, তখন AGP 8.0 একটি test_config.properties ফাইল তৈরি করে যাতে শুধুমাত্র আপেক্ষিক পাথ থাকে। এটি নিশ্চিত করে যে অ্যান্ড্রয়েড ইউনিট পরীক্ষাগুলি সর্বদা 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 আপেক্ষিক রিসোর্স পাথ ম্যাপিং কম্পিউটিংয়ের জন্য ব্যবহৃত হয়, তাই গ্রেডল বিল্ডগুলি প্রায়শই আপ-টু-ডেট থাকে।
android.cacheCompileLibResources true কম্পাইল করা লাইব্রেরি রিসোর্সগুলি এখন ডিফল্টরূপে ক্যাশে করা যেতে পারে কারণ গ্র্যাডেল প্রোজেক্টের অবস্থানের সাথে সম্পর্কিত রিসোর্স ফাইলগুলি ট্র্যাক করে। android.enableSourceSetPathsMap সক্ষম করা প্রয়োজন।
android.disableAutomaticComponentCreation true AGP 8.0 ডিফল্টরূপে কোনও সফ্টওয়্যার কম্পোনেন্ট তৈরি করে না। পরিবর্তে AGP কেবলমাত্র প্রকাশনা DSL ব্যবহার করে প্রকাশের জন্য কনফিগার করা ভেরিয়েন্টের জন্য সফ্টওয়্যার কম্পোনেন্ট তৈরি করে।

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

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

পরীক্ষামূলক পতাকাগুলির পূর্বরূপ দেখতে, প্রিভিউ রিলিজ নোটগুলি দেখুন।

কোটলিনের অলস সম্পত্তি অ্যাসাইনমেন্ট সমর্থিত নয়

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

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

অ্যান্ড্রয়েড স্টুডিও ফ্লেমিঙ্গো থেকে শুরু করে, বিল্ড অ্যানালাইজারে বিল্ডের সময়কালকে প্রভাবিত করে এমন কাজের জন্য একটি নতুন ডিফল্ট ভিউ রয়েছে। যদি আপনার প্রকল্প AGP 8.0 বা উচ্চতর ব্যবহার করে, তাহলে পৃথকভাবে কাজগুলি প্রদর্শনের পরিবর্তে, বিল্ড অ্যানালাইজার সেগুলিকে বিভাগ অনুসারে গোষ্ঠীভুক্ত করে। উদাহরণস্বরূপ, অ্যান্ড্রয়েড রিসোর্সেস, কোটলিন, বা ডেক্সিংয়ের জন্য নির্দিষ্ট কাজগুলিকে একসাথে গোষ্ঠীভুক্ত করা হয় এবং তারপর বিল্ড সময়কাল অনুসারে সাজানো হয়। এর ফলে কোন বিভাগটি বিল্ড সময়ের উপর সবচেয়ে বেশি প্রভাব ফেলে তা জানা সহজ হয়। প্রতিটি বিভাগ প্রসারিত করলে সংশ্লিষ্ট কাজের একটি তালিকা প্রদর্শিত হয়। গ্রুপিং ছাড়াই পৃথকভাবে কাজগুলি প্রদর্শন করতে, ড্রপ-ডাউন দ্বারা গ্রুপ ব্যবহার করুন।

বিশ্লেষক কার্য বিভাগ তৈরি করুন।

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

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 Plugin 8.0 ব্যবহার করার সময়, Gradle চালানোর জন্য JDK 17 এখন প্রয়োজন। Android Studio Flamingo JDK 17 কে একত্রিত করে এবং Gradle কে ডিফল্টরূপে ব্যবহারের জন্য কনফিগার করে, যার অর্থ হল বেশিরভাগ Android Studio ব্যবহারকারীদের তাদের প্রকল্পগুলিতে কোনও কনফিগারেশন পরিবর্তন করার প্রয়োজন হয় না।

যদি আপনাকে অ্যান্ড্রয়েড স্টুডিওর ভিতরে AGP দ্বারা ব্যবহৃত JDK সংস্করণটি ম্যানুয়ালি সেট করতে হয়, তাহলে আপনাকে JDK 17 বা তার উচ্চতর সংস্করণ ব্যবহার করতে হবে।

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

সমস্যা সমাধান করা হয়েছে

অ্যান্ড্রয়েড গ্রেডল প্লাগইন 8.0.2

সমস্যা সমাধান করা হয়েছে
শ্রিঙ্কার (R8)
ArrayIndexOutOfBoundsException সহ Compose বিল্ডের সময় R8 ব্যর্থ হয়
VerifyError: Kotlin 1.8.20 এর সাথে R8 ব্যবহার করার সময় যাচাইকারী ক্লাস প্রত্যাখ্যান করেছে
AGP 8-তে R8 গুগল ফিট পরিষেবা ভেঙে দেয়
ইনপুট নামগুলিকে ওভারল্যাপ করে এমন অবশিষ্ট নামগুলির সাথে উৎস ফাইলের তথ্য অন্তর্ভুক্ত করা সঠিকভাবে উপস্থাপিত হয়নি

অ্যান্ড্রয়েড গ্রেডল প্লাগইন 8.0.1

সমস্যা সমাধান করা হয়েছে
শ্রিঙ্কার (R8)
ত্রুটি: AGP 7.2.2 -> 7.4.0 আপগ্রেড করার পরে "টেবিলে প্রদত্ত আইডি সহ কোনও সংস্করণের প্রয়োজন নেই"
markTypeAsLive AGP 7.4.1-এ R8 NullPointerException
[R8 4.0.53] Android 11-এ হার্ড ক্লাস যাচাইকরণ ব্যর্থতা

অ্যান্ড্রয়েড গ্রেডল প্লাগইন 8.0.0

সমস্যা সমাধান করা হয়েছে
অ্যান্ড্রয়েড গ্রেডল প্লাগইন
MergeResources টাস্কে ফ্লেকি বিল্ড ব্যর্থতা
JavaPluginConvention এবং HasConvention বন্ধ করা হয়েছে
নতুন ট্রান্সফর্ম API-এর জন্য ভুল এবং অসঙ্গত ফাইল অবস্থান
অ্যান্ড্রয়েড গ্রেডল প্লাগইনটি অবচিত GUtil.toWords(string) ফাংশন ব্যবহার করা উচিত নয়।
অ্যান্ড্রয়েড গ্রেডল প্লাগইনটি অবচিত ConfigureUtil.configure(closure, target) ফাংশন ব্যবহার করা উচিত নয়
KGP 1.7.20-Beta ব্যবহার করার জন্য AGP পরীক্ষাগুলি আপডেট করুন
গ্রেডল ৭.৪ ব্যর্থ হয়েছে (অ্যানালিটিক্স সার্ভিসের উদাহরণ তৈরি করা যায়নি)
AGP 7.4.0-alpha09-এ javac থেকে নতুন "অজানা এনাম ধ্রুবক"
MergeGeneratedProguardFilesCreationAction কনফিগারেশন ক্যাশিং চালু থাকা সত্ত্বেও ধীর গতিতে চলছে
[AGP] IDE মডেলে (ভেরিয়েন্ট API) জেনারেটেড সোর্স ডিরেক্টরি যোগ করুন
JavaPluginConvention এবং HasConvention বন্ধ করা হয়েছে
ডিফল্টরূপে R8 তে উপেক্ষার সতর্কতা যোগ করবেন না।
প্রোগার্ড ফাইল না থাকলে সতর্ক করুন
AGP 7.3.0 গ্রেডল প্ল্যাটফর্ম প্রকল্পের জন্য গ্রেডল সিঙ্ক ভেঙে দেয়
apksig লাইব্রেরি: ApkVerifier$Result.getV4SchemeSigners() কে ব্যক্তিগত হিসেবে চিহ্নিত করা হয়েছে
কভারেজ সক্ষম না থাকলে androidJacocoAnt কনফিগারেশন তৈরি করা বন্ধ করুন
লাইব্রেরি কম্পোনেন্টে @IntDef ব্যবহার করলে aar-এ annotations.zip তৈরি হয় না।
সাধারণ সুপার টাইপ খুঁজে পাওয়া যাচ্ছে না এবং
LINT_PRINT_STACKTRACE=true এর একটি gradle প্রোপার্টি ভার্সন যোগ করুন
AAR-তে প্যাকেজ করা হচ্ছে বাসি প্রিফ্যাব শিল্পকর্ম
অবচয় সংক্রান্ত সতর্কতা মোকাবেলা করতে এবং গ্রেডল 9.0-এর জন্য প্রস্তুত হতে গন্তব্য সম্পত্তি থেকে আউটপুটলোকেশন সম্পত্তিতে স্থানান্তর করুন।
JavaCompile টাস্ক সেট আপ করার সময় `--release` পতাকাটি বিবেচনা করুন
[AGP-7.3.0-beta03] XML ঘোষণার পরে একটি খালি লাইন থাকলে ShrinkResourcesNewShrinkerTask ব্যর্থ হয়
lintVital টার্গেট ডিবাগ ভেরিয়েন্টে ডিফল্টভাবে চালিত হয়
প্রোগার্ড ফাইল না থাকলে সতর্ক করুন
AGP টাস্ক এক্সিকিউশন পর্যায়ে kotlinOptions.freeCompilerArgs যোগ করার চেষ্টা করে
গ্র্যাডেল সিঙ্ক ব্যর্থ হয়েছে: সিঙ্ক ব্যর্থ হয়েছে: কারণ অজানা
DependencyReportTask কনফিগারেশন ক্যাশের সাথে বেমানান।
build.gradle-এ resValue দিয়ে রিসোর্স ওভাররাইড করলে ত্রুটি দেখা দেয়: রিসোর্সের সদৃশতা
'ডিবাগ' বিল্ড টাইপের ডিফল্ট সাইনিং কী আছে, অন্যদের নেই
গতিশীল বৈশিষ্ট্য ব্যবহার এবং সম্পদ সঙ্কুচিত হওয়ার ফলে রানটাইম ক্র্যাশ হয়
'ডিবাগ' বিল্ড টাইপের ডিফল্ট সাইনিং কী আছে, অন্যদের নেই
লিন্ট মডেলের প্রধান উৎস প্রদানকারীতে জাভা ডিরেক্টরি হিসাবে তালিকাভুক্ত উৎপন্ন উৎস ডিরেক্টরি
গ্রেডল ৮.০-মাইলস্টোন-২ AGP-তে ব্যতিক্রম সৃষ্টি করে
অ্যাপ এবং লাইব্রেরির জন্য ম্যানিফেস্ট মার্জিং অপ্টিমাইজ করুন
জাভাডোক জেনারেশনে gradle-settings-api যোগ করুন
AGP 7.4.0-alpha09-এ javac থেকে নতুন "অজানা এনাম ধ্রুবক"
AGP 7.4.0-alpha09 এমন বিল্ড তৈরি করে যা Firebase অ্যাপ ডিস্ট্রিবিউশনে আপলোড হবে না
মডিউলগুলিতে lint.xml লিন্ট কাজের আপডেট-টু-ডেট চেকের জন্য বিবেচিত হয় না
অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৭.০+ এবং অ্যান্ড্রয়েড টেস্ট সমস্যা: রিসোর্স খুঁজে পাচ্ছি না: আইডি
configureCMakeDebug নাল পয়েন্টার ব্যতিক্রমের সাথে অস্থিরভাবে ক্র্যাশ করছে
IllegalAccessError প্রকল্পটিকে AS2022.2.1.5, FireBasePerfPlugin-এ আপগ্রেড করছে
"সংগ্রহে কোনও উপাদান নেই যা পূর্বাভাসের সাথে মিলে যায়" - এই রহস্যময় ত্রুটির সাথে সিঙ্ক ব্যর্থ হয়েছে।
ইন্সট্রুমেন্টেশন API স্থানীয় ফাইল নির্ভরতা রূপান্তর করে না
``অ্যানোটেশনপ্রসেসরঅপশন.আর্গুমেন্টগুলি জিজ্ঞাসা করা হচ্ছে` ৭.৪ বিটা ১-এ আপডেট করার সময় ত্রুটি
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 ভেঙে দেয়।
`com.android.build.gradle.tasks.ShaderCompile` কনফিগারেশন ক্যাশে সমস্যা
AGP API ব্যবহার করে জাভা রিসোর্সে যোগ করলে কনফিগারেশন ক্যাশে ভেঙে যায়
লিন্ট প্লাগইন gradle-api এর অংশ নয়।
DexingFileDependenciesTask.outputKeepRules একটি ডিরেক্টরি কিন্তু এটি একটি OutputFile হিসাবে চিহ্নিত
AGP 7.4 এ আপগ্রেড করার ফলে StackOverflowError দেখা দেয়।
পরীক্ষার ভেরিয়েন্টের জন্য ম্যানিফেস্ট প্লেসহোল্ডারগুলির সাথে processDebugUnitTestManifest ব্যর্থ হচ্ছে
লিন্ট নির্ভরতা ছাড়াই সোর্স সেট তথ্য অ্যাক্সেস করে
বিল্ড ত্রুটি API লেভেল 34 কে বোঝায়, যা বিদ্যমান নেই।
"যখন নতুন কোনও অ্যান্ড্রয়েড গ্রেডল প্লাগইন না থাকে, তখন আমরা একটি নতুন অ্যান্ড্রয়েড গ্রেডল প্লাগইন ব্যবহার করার পরামর্শ দিই"
android.injected.testOnly=false কাজ করে না
ডেক্সার (D8)
AS Canary 6 থেকে 7 আপগ্রেড করার পরে গ্লোবাল সিন্থেটিক্স সম্পর্কিত Dex মার্জিং ত্রুটি
কোটলিন মেটাডেটা লাইব্রেরি 0.6.0 সংস্করণে আপডেট করুন
JDK-8272564 এর জন্য সমাধান API লেভেল 28-30 তে প্রয়োজন বলে মনে হচ্ছে
লিন্ট
কোটলিন সোর্সের জন্য রিসোর্সটাইপ লিন্ট চেক কাজ করছে না
ভার্সনচেকস কোটলিন রেঞ্জ চেক পরিচালনা করে না
মোড়ানো অবস্থায় InlinedApi-এর জন্য মিথ্যা পজিটিভ
openInputStream সম্পর্কিত লিন্ট মিথ্যা পজিটিভ রিসাইকেল
[BuildTool/Lint] SdkIntAtLeast কনস্ট্রাক্টর প্রোপার্টি চেক করে
লিন্ট: আংশিক ফলাফল মার্জ করা ভুলভাবে কাজ করে
অ্যান্ড্রয়েড স্টুডিও ভুলভাবে নির্দিষ্ট সংস্করণটিকে পুরানো হিসাবে চিহ্নিত করে।
AndroidDeprecationInspection.DeprecationFilter EP কখনও android-plugin.xml ফাইলে নিবন্ধিত হয় না
অ্যাক্সেসিবিলিটি ডিটেক্টর লিন্ট চেক ব্যাখ্যাটি পুরানো।
Lint SDK_INT চেকগুলি অস্থায়ী স্থানীয় ভেরিয়েবলগুলি বুঝতে হবে
TestMode.TYPE_ALIAS ফাংশন টাইপকে টাইপএলিয়া দিয়ে প্রতিস্থাপন করার সময় ত্রুটি ঘটে
বাগ: যখন বর্তমান কোড ব্লকের বাইরে অবজেক্টঅ্যানিমেটর তৈরি করা হয়, তখন এটি চালু না করার মিথ্যা-ইতিবাচক সতর্কতা থাকে #38
লিন্ট: মার্জঅনলি মোডে অ্যাপ্লিকেশন ইনস্ট্যান্স কোয়েরির কারণে NPE
নন-কনস্ট্যান্টরিসোর্সআইডি লিন্ট নিয়ম রিসোর্স আইডি থেকে ধ্রুবক মান নির্ধারণ করতে পারে না
ভিউ আইডিতে ত্রুটি দেখাচ্ছে না
লিন্ট রিসোর্স ক্যাশে ডিসিরিয়ালাইজ করতে ব্যর্থ হলে লিন্ট ত্রুটি দেখা দেয় (তবে এটি একটি সতর্কতা হওয়া উচিত)
AGP Flamingo Alpha 8 Lint NewApi Desugar Regression
TypedArray#close (API 31) ডিসগার্ড করা হয়নি কিন্তু try-with-resources-এ ব্যবহার করার সময় AS সতর্কতা প্রদর্শন করে না
লিন্ট কল রিসিভারের জন্য বৈধ কাস্ট পরীক্ষা করে না।
লিন্ট শুধুমাত্র সরাসরি বাস্তবায়িত ইন্টারফেসের জন্য নিরাপদ কাস্ট পরীক্ষা করে, উত্তরাধিকারসূত্রে প্রাপ্ত ইন্টারফেসগুলির জন্য নয়।
লিন্ট ইন্টিগ্রেশন
বেসলাইন ফাইলটি বর্তমানে লিন্ট টাস্কের একটি ইনপুট এবং একটি আউটপুট।
শ্রিঙ্কার (R8)
CF ফ্রেম যাচাইকারীতে NPE / দাবি ত্রুটি
ফিল্ড লুকআপ ক্যাশে অপসারণের পরে রিগ্রেশন
`:app:minifyVariantWithR8` AGP 7.4.0-beta02 তে একটি NullPointerException ছুঁড়েছে
R8: ClassNotFoundException যখন -allowaccessmodification
মেটাডেটাতে প্রসঙ্গ রিসিভারের জন্য সমর্থন যোগ করুন
java.lang.VerifyError: যাচাইকারী প্রত্যাখ্যাত ক্লাস androidx.compose.ui.graphics.colorspace.o: void androidx.compose.ui.graphics.colorspace.o. (java.lang.Object) যাচাই করতে ব্যর্থ হয়েছে: void androidx.compose.ui.graphics.colorspace.o. (java.lang.Object): [0x0] ইনস্ট্যান্স ফিল্ড java.lang.Object androidx.compose.ui.graphics.colorspace.na টাইপের অবজেক্ট থেকে অ্যাক্সেস করতে পারে না সঠিক রেফারেন্স: androidx.compose.ui.graphics.colorspace.o
AGP 7.4.0/7.3.1 - একটি নন-পুশযোগ্য এনকিউয়ার কাজের তালিকায় একটি অ্যাকশন এনকিউ করার চেষ্টা
রেন্ডারস্ক্রিপ্ট কোড মিনিফাই করা: AGP 7.3.1 থেকে 7.4.0 এ আপগ্রেড করার সময় কর্মক্ষমতা ব্যাপক হ্রাস