یادداشت های انتشار برای پیش نمایش پلاگین Android Gradle

این صفحه حاوی یادداشت‌های انتشار برای نسخه‌های پیش‌نمایش افزونه Android Gradle (AGP) است.

افزونه اندروید گریدل ۹.۰

افزونه اندروید گریدل ۹.۰ یک نسخه جدید و بزرگ از AGP است و تغییرات API و رفتاری را به همراه دارد.

برای به‌روزرسانی به افزونه‌ی اندروید گریدل ۹.۰.۰-alpha11، از دستیار ارتقاء افزونه‌ی اندروید گریدل در اندروید استودیو Otter 2 Feature Drop | 2025.2.2 استفاده کنید.

دستیار ارتقاء AGP به حفظ رفتارهای موجود هنگام ارتقاء پروژه شما در صورت لزوم کمک می‌کند و به شما این امکان را می‌دهد که پروژه خود را برای استفاده از AGP 9.0 ارتقا دهید، حتی اگر آماده پذیرش همه پیش‌فرض‌های جدید در AGP 9.0 نباشید.

سازگاری

حداکثر سطح API اندروید که افزونه اندروید Gradle نسخه 9.0.0-alpha11 پشتیبانی می‌کند، سطح API 36 است.

افزونه اندروید Gradle نسخه 9.0.0-alpha11 به Gradle نسخه 9.0.0 نیاز دارد.

حداقل نسخه نسخه پیش‌فرض یادداشت‌ها
گرادل ۹.۰.۰ ۹.۰.۰ برای کسب اطلاعات بیشتر، به به‌روزرسانی Gradle مراجعه کنید.
ابزارهای ساخت SDK ۳۶.۰.۰ ۳۶.۰.۰ ابزارهای ساخت SDK را نصب یا پیکربندی کنید .
ان دی کی ناموجود ۲۸.۲.۱۳۶۷۶۳۵۸ نسخه دیگری از NDK را نصب یا پیکربندی کنید .
جی‌دی‌کی ۱۷ ۱۷ برای کسب اطلاعات بیشتر، به تنظیم نسخه JDK مراجعه کنید.

کلاس‌های DSL android اکنون فقط رابط‌های عمومی جدید را پیاده‌سازی می‌کنند.

در طول چند سال گذشته، ما رابط‌های جدیدی را برای DSL و API خود معرفی کرده‌ایم تا بتوانیم بهتر کنترل کنیم که کدام APIها عمومی هستند. نسخه‌های 7.x و 8.x AGP هنوز از انواع قدیمی DSL (به عنوان مثال BaseExtension ) استفاده می‌کردند که رابط‌های عمومی جدید را نیز پیاده‌سازی می‌کردند تا سازگاری با پیشرفت کار روی رابط‌ها حفظ شود.

AGP 9.0 منحصراً از رابط‌های DSL جدید ما استفاده می‌کند و پیاده‌سازی‌ها به انواع جدیدی تغییر یافته‌اند که کاملاً پنهان هستند. این تغییرات همچنین دسترسی به API قدیمی و منسوخ‌شده را حذف می‌کند.

برای به‌روزرسانی به AGP 9.0، ممکن است لازم باشد موارد زیر را انجام دهید:

  • مطمئن شوید که پروژه شما با کاتلین داخلی سازگار است: افزونه org.jetbrains.kotlin.android با DSL جدید سازگار نیست.
  • پروژه‌های KMP را به افزونه کتابخانه اندروید Gradle برای KMP تغییر دهید: استفاده از افزونه org.jetbrains.kotlin.multiplatform در همان زیرپروژه Gradle که افزونه‌های com.android.library و com.android.application در آن قرار دارند، با DSL جدید سازگار نیست.

  • فایل‌های ساخت خود را به‌روزرسانی کنید: اگرچه تغییر رابط‌ها به منظور حفظ هرچه بیشتر شباهت DSL است، اما ممکن است تغییرات کوچکی نیز رخ دهد.

  • منطق ساخت سفارشی خود را برای ارجاع به DSL و API جدید به‌روزرسانی کنید: هرگونه ارجاع به DSL داخلی را با رابط‌های DSL عمومی جایگزین کنید. در بیشتر موارد، این جایگزینی یک به یک خواهد بود. هرگونه استفاده از applicationVariants و APIهای مشابه را با API جدید androidComponents جایگزین کنید. این ممکن است پیچیده‌تر باشد، زیرا API androidComponents به گونه‌ای طراحی شده است که پایدارتر باشد تا افزونه‌ها را برای مدت طولانی‌تری سازگار نگه دارد. برای مثال‌ها، Gradle Recipes ما را بررسی کنید.

  • به‌روزرسانی افزونه‌های شخص ثالث: برخی از افزونه‌های شخص ثالث ممکن است هنوز به رابط‌ها یا APIهایی وابسته باشند که دیگر در دسترس نیستند. به نسخه‌هایی از این افزونه‌ها که با AGP 9.0 سازگار هستند، مهاجرت کنید.

تغییر به رابط‌های DSL جدید، مانع از استفاده افزونه‌ها و اسکریپت‌های Gradle build از APIهای منسوخ‌شده‌ی مختلف، از جمله موارد زیر، می‌شود:

API منسوخ شده در بلوک android عملکرد جایگزینی
applicationVariants ،
libraryVariants ،
testVariants ، و
unitTestVariants
نقاط توسعه برای افزونه‌ها جهت افزودن قابلیت‌های جدید به AGP. این را با API androidComponents.onVariants جایگزین کنید، برای مثال:
androidComponents {
    onVariants() { variant ->
        variant.signingConfig
            .enableV1Signing.set(false)
    }
}
ممکن است جایگزین مستقیمی برای همه APIهای قبلی وجود نداشته باشد. اگر موردی از استفاده وجود دارد که توسط APIهای نوع جدید پوشش داده نمی‌شود، مشکل را ثبت کنید .
variantFilter اجازه می‌دهد تا انواع انتخاب‌شده غیرفعال شوند. برای مثال، این را با API androidComponents.beforeVariants جایگزین کنید:
androidComponents {
    beforeVariants(
        selector()
            .withBuildType("debug")
            .withFlavor("color", "blue")
    ) { variantBuilder ->
        variantBuilder.enable = false
    }
  }
deviceProvider و
testServer
ثبت محیط‌های تست سفارشی برای اجرای تست‌ها روی دستگاه‌ها و شبیه‌سازهای اندروید. به دستگاه‌های مدیریت‌شده توسط Gradle بروید.
sdkDirectory ،
ndkDirectory ،
bootClasspath
adbExecutable ، و
adbExe
استفاده از اجزای مختلف Android SDK برای وظایف سفارشی. به androidComponents.sdkComponents بروید.
registerArtifactType ،
registerBuildTypeSourceProvider منبع ارائه دهنده
registerProductFlavorSourceProvider ، منبع
registerJavaArtifact ,
registerMultiFlavorSourceProvider و
wrapJavaSourceSet
قابلیت‌های منسوخ‌شده عمدتاً مربوط به مدیریت منابع تولیدشده در اندروید استودیو بود که در AGP 7.2.0 از کار افتادند. هیچ جایگزین مستقیمی برای این APIها وجود ندارد.

اگر به AGP 9.0 به‌روزرسانی کنید و پیام خطای زیر را مشاهده کنید، به این معنی است که پروژه شما هنوز به برخی از انواع قدیمی ارجاع می‌دهد:

java.lang.ClassCastException: class com.android.build.gradle.internal.dsl.ApplicationExtensionImpl$AgpDecorated_Decorated
cannot be cast to class com.android.build.gradle.BaseExtension

اگر توسط افزونه‌های شخص ثالث ناسازگار مسدود شده‌اید، می‌توانید انصراف دهید و پیاده‌سازی‌های قدیمی برای DSL و همچنین API نوع قدیمی را بازیابی کنید. در حین انجام این کار، رابط‌های جدید نیز در دسترس هستند و شما همچنان می‌توانید منطق ساخت خود را به API جدید به‌روزرسانی کنید. برای انصراف، این خط را در فایل gradle.properties خود وارد کنید:

android.newDsl=false

همچنین می‌توانید قبل از ارتقا به AGP 9.0، ارتقا به APIهای جدید را شروع کنید. رابط‌های جدید برای بسیاری از نسخه‌های AGP وجود داشته‌اند، بنابراین می‌توانید ترکیبی از رابط‌های جدید و قدیمی را داشته باشید. اسناد مرجع AGP API، سطح API را برای هر نسخه AGP و زمان اضافه شدن هر کلاس، متد و فیلد نشان می‌دهند.

در طول فاز آلفای ۹.۰، ما با نویسندگان افزونه‌ها تماس می‌گیریم تا به آنها در تطبیق و انتشار افزونه‌هایی که کاملاً با حالت‌های جدید سازگار هستند، کمک کنیم و دستیار ارتقاء AGP را در اندروید استودیو بهبود خواهیم بخشید تا شما را در طول مهاجرت راهنمایی کند.

اگر متوجه شدید که DSL یا API نوع جدید فاقد قابلیت‌ها یا ویژگی‌های لازم است، لطفاً در اسرع وقت مشکل را ثبت کنید.

کاتلین داخلی

افزونه اندروید گریدل ۹.۰ شامل پشتیبانی داخلی از کامپایل کاتلین است که جایگزین افزونه کاتلین جداگانه اعمال شده می‌شود. این امر ادغام با AGP را ساده می‌کند، از استفاده از APIهای منسوخ جلوگیری می‌کند و در برخی موارد عملکرد را بهبود می‌بخشد.

افزونه‌ی اندروید Gradle نسخه ۹.۰ در زمان اجرا به افزونه‌ی Kotlin Gradle نسخه ۲.۲.۱۰ وابسته است که حداقل نسخه مورد نیاز برای پشتیبانی داخلی از کاتلین است.

کاتلین داخلی در AGP 9.0 پشتیبانی کامل IDE اندروید استودیو را برای تست-فیکسچرها فراهم می‌کند. برای امتحان کردن این، از AGP 9.0.0-alpha07 یا بالاتر استفاده کنید.

شما می‌توانید با تنظیم android.builtInKotlin=false از کاتلین داخلی صرف نظر کنید.

اگر از کاتلین داخلی انصراف داده‌اید و همچنین نیاز به استفاده از نسخه قدیمی‌تر افزونه کاتلین Gradle دارید، می‌توانید به صورت اجباری آن را به نسخه قبلی برگردانید:

buildscript {
    dependencies {
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") {
            version { strictly("2.0.0") } // or another version that you want to use
        }
    }
}

تغییرات رفتاری

افزونه‌ی اندروید گریدل ۹.۰ رفتارهای جدید زیر را دارد:

رفتار توصیه
افزونه‌ی اندروید گریدل ۹.۰ به طور پیش‌فرض از نسخه NDK r28c استفاده می‌کند. نسخه NDK مورد نظر خود را به طور صریح مشخص کنید.
افزونه‌ی اندروید گریدل ۹.۰ به طور پیش‌فرض از مصرف‌کنندگان یک کتابخانه می‌خواهد که از نسخه‌ی کامپایل SDK یکسان یا بالاتر استفاده کنند. هنگام استفاده از یک کتابخانه، از همان کامپایل SDK یا بالاتر استفاده کنید. اگر این امکان وجود ندارد، یا می‌خواهید به مصرف‌کنندگان کتابخانه‌ای که منتشر می‌کنید زمان بیشتری برای تغییر بدهید، AarMetadata.minCompileSdk به صراحت تنظیم کنید.

AGP 9.0 شامل به‌روزرسانی‌هایی برای پیش‌فرض‌های ویژگی‌های Gradle زیر است. این به شما این امکان را می‌دهد که هنگام ارتقا، رفتار AGP 8.13 را حفظ کنید:

ملک عملکرد تغییر از AGP 8.13 به AGP 9.0 توصیه
android.newDsl از رابط‌های DSL جدید استفاده کنید، بدون اینکه پیاده‌سازی‌های قدیمی بلوک android را در معرض خطر قرار دهید.
این همچنین به این معنی است که API نسخه قدیمی، مانند android.applicationVariants ، دیگر قابل دسترسی نیست.
falsetrue شما می‌توانید با تنظیم android.newDsl=false انصراف دهید.
وقتی همه افزونه‌ها و منطق ساخت مورد استفاده پروژه شما سازگار شدند، گزینه انصراف را حذف کنید.
android.builtInKotlin پشتیبانی از کامپایل مستقیم کد کاتلین در افزونه‌ی اندروید گریدل، بدون افزونه‌ی org.jetbrains.kotlin.android ، فعال شد. falsetrue در صورت امکان، با حذف استفاده از افزونه org.jetbrains.kotlin.android ، از کاتلین داخلی استفاده کنید. در غیر این صورت، با تنظیم android.builtInKotlin=false از این کار خودداری کنید.
android.uniquePackageNames الزام می‌کند که هر کتابخانه نام بسته‌ی مجزایی داشته باشد. falsetrue برای تمام کتابخانه‌های پروژه خود نام‌های بسته منحصر به فرد تعیین کنید. اگر این امکان وجود ندارد، می‌توانید این پرچم را هنگام مهاجرت غیرفعال کنید.
android.dependency.useConstraints استفاده از محدودیت‌های وابستگی بین پیکربندی‌ها را کنترل می‌کند.
مقدار پیش‌فرض در AGP 9.0 false است که فقط از محدودیت‌ها در تست‌های دستگاه برنامه (AndroidTest) استفاده می‌کند. تنظیم این مقدار روی true ، رفتار را به حالت ۸.۱۳ برمی‌گرداند.
truefalse از محدودیت‌های وابستگی در همه جا استفاده نکنید، مگر اینکه به آنها نیاز داشته باشید. پذیرش پیش‌فرض جدید این پرچم، بهینه‌سازی‌هایی را در فرآیند وارد کردن پروژه نیز امکان‌پذیر می‌کند که باید زمان وارد کردن را برای ساخت‌هایی با زیرپروژه‌های کتابخانه اندروید زیاد کاهش دهد.
aandroid.enableAppCompileTimeRClass کد موجود در برنامه‌ها را در برابر یک کلاس R غیرنهایی کامپایل کنید، و کامپایل برنامه را با کامپایل کتابخانه هماهنگ کنید.
این امر باعث بهبود افزایشی شدن می‌شود و راه را برای بهینه‌سازی‌های عملکرد آینده در جریان پردازش منابع هموار می‌کند.
falsetrue بسیاری از پروژه‌ها می‌توانند رفتار جدید را بدون هیچ تغییری در منبع بپذیرند. اگر فیلدهای کلاس R در جایی استفاده می‌شوند که به یک ثابت نیاز دارند، مانند switch caseها، کد را به صورت زنجیره‌ای بازنویسی کنید تا از دستورات if استفاده شود.
android.sdk.defaultTargetSdkToCompileSdkIfUnset از نسخه کامپایل SDK به عنوان مقدار پیش‌فرض برای نسخه SDK هدف در برنامه‌ها و تست‌ها استفاده می‌کند.
قبل از این تغییر، نسخه SDK هدف به طور پیش‌فرض روی نسخه SDK حداقل قرار می‌گرفت.
falsetrue نسخه SDK هدف را برای برنامه‌ها و آزمایش‌ها به صراحت مشخص کنید.
android.onlyEnableUnitTestForTheTestedBuildType فقط کامپوننت‌های تست واحد را برای نوع ساخت تست‌شده ایجاد می‌کند.
در پروژه پیش‌فرض، این منجر به یک تست واحد برای اشکال‌زدایی می‌شود، در حالی که رفتار قبلی این بود که تست‌های واحد برای اشکال‌زدایی یا انتشار اجرا شوند.
falsetrue اگر پروژه شما برای اشکال‌زدایی و انتشار نیازی به آزمایش ندارد، نیازی به تغییر نیست.
android.proguard.failOnMissingFiles اگر هر یک از فایل‌های keep مشخص‌شده در AGP DSL روی دیسک وجود نداشته باشند، ساخت با خطا مواجه می‌شود. قبل از این تغییر، غلط‌های املایی در نام فایل‌ها منجر به نادیده گرفته شدن بی‌سروصدای فایل‌ها می‌شد. falsetrue هرگونه اعلان نامعتبر در فایل‌های proguard را حذف کنید
android.r8.optimizedResourceShrinking با در نظر گرفتن کلاس‌ها و منابع اندروید به صورت همزمان، به R8 اجازه می‌دهد منابع اندروید کمتری را نگه دارد. falsetrue اگر قوانین مربوط به نگهداری پروژه شما از قبل تکمیل شده است، نیازی به تغییر نیست.
android.r8.strictFullModeForKeepRules به R8 اجازه می‌دهد تا با نگه نداشتن ضمنی سازنده پیش‌فرض هنگام نگه داشتن یک کلاس، مقدار کمتری را نگه دارد. یعنی، -keep class A دیگر به این معنی نیست -keep class A { <init>(); }
falsetrue اگر قوانین مربوط به نگهداری پروژه شما از قبل تکمیل شده است، نیازی به تغییر نیست.

در هر موردی که نیاز به نگه‌داشتن سازنده پیش‌فرض دارید، در قوانین keep پروژه خود -keep class A با -keep class A { <init>(); } ‎ جایگزین کنید.
android.defaults.buildfeatures.resvalues فعال کردن resValues ​​در تمام زیرپروژه‌ها truefalse با تنظیم موارد زیر در فایل‌های Gradle build پروژه‌ها، resValues فقط در زیرپروژه‌هایی که به آن نیاز دارند فعال کنید:
android {
  buildFeatures {
    resValues = true
  }
}
android.defaults.buildfeatures.shaders کامپایل شیدر را در تمام زیرپروژه‌ها فعال می‌کند. truefalse با تنظیم موارد زیر در فایل‌های Gradle build پروژه‌ها، کامپایل shader را فقط در زیرپروژه‌هایی که حاوی shaderهایی هستند که قرار است کامپایل شوند، فعال کنید:
android {
  buildFeatures {
    shaders = true
  }
}
android.r8.proguardAndroidTxt.disallowed در AGP 9.0، getDefaultProguardFile() فقط از proguard-android-optimize.txt به جای proguard-android.txt پشتیبانی می‌کند. این کار برای جلوگیری از استفاده تصادفی از پرچم dontoptimize است که در proguard-android.txt گنجانده شده است. falsetrue اگر می‌خواهید از بهینه‌سازی جلوگیری کنید، می‌توانید در کنار استفاده از proguard-android-optimize.txt ، صراحتاً dontoptimize در یک proguardFile سفارشی مشخص کنید. در صورت امکان، حتماً پرچم dontoptimize از این فایل حذف کنید، زیرا مزایای بهینه‌سازی R8 را کاهش می‌دهد. در غیر این صورت، با تنظیم android.r8.globalOptionsInConsumerRules.disallowed=false از این کار خودداری کنید.
android.r8.globalOptionsInConsumerRules.disallowed از AGP 9.0، انتشار کتابخانه و ماژول ویژگی اندروید در صورتی که فایل‌های consumer keep حاوی پیکربندی‌های Proguard مشکل‌دار باشند، با شکست مواجه خواهد شد. فایل‌های consumer keep که شامل گزینه‌های سراسری مانند dontoptimize یا dontobfuscate هستند، فقط باید در ماژول‌های برنامه استفاده شوند و می‌توانند مزایای بهینه‌سازی را برای کاربران کتابخانه کاهش دهند. کامپایل ماژول برنامه اندروید، در صورت تعبیه شدن در یک وابستگی از پیش کامپایل شده (JAR یا AAR)، هرگونه گزینه سراسری از این دست را بی‌سروصدا نادیده می‌گیرد. می‌توانید با بررسی configuration.txt (معمولاً در مسیری مانند <app_module>/build/outputs/mapping/<build_variant>/configuration.txt mapping/<build_variant>/configuration.txt) برای توضیحاتی مانند موارد زیر، متوجه شوید که چه زمانی این اتفاق می‌افتد: # REMOVED CONSUMER RULE: dontoptimize falsetrue کتابخانه‌های منتشر شده باید هرگونه قانون ناسازگار را حذف کنند. کتابخانه‌های داخلی باید هرگونه قانون ناسازگار اما مورد نیاز را به یک proguardFile در یک ماژول برنامه منتقل کنند. با تنظیم android.r8.globalOptionsInConsumerRules.disallowed=false از این کار خودداری کنید. هنگامی که تمام فایل‌های consumer keep شما سازگار شدند، گزینه عدم سازگاری را حذف کنید.

ویژگی‌های حذف‌شده

افزونه‌ی اندروید گریدل ۹.۰ قابلیت‌های زیر را حذف می‌کند:

دی‌اس‌ال تغییر کرد

افزونه‌ی اندروید گریدل ۹.۰ تغییرات DSL زیر را دارد:

  • پارامتربندی CommonExtension حذف شده است.

    این به خودی خود، تنها یک تغییر در سطح منبع است تا از تغییرات بعدی در سطح منبع جلوگیری کند، اما همچنین به این معنی است که متدهای بلوک باید از CommonExtension به ApplicationExtension ، LibraryExension ، DynamicFeatureExtension و TestExtension منتقل شوند.

    هنگام ارتقاء پروژه خود به AGP 9.0، کد افزونه Gradle را که از آن پارامترها یا متدهای بلوک استفاده می‌کند، اصلاح کنید. به عنوان مثال، افزونه زیر به گونه‌ای به‌روزرسانی شده است که پارامتر نوع را حذف کند و به متدهای بلوک حذف شده متکی نباشد:

    AGP 8.13

    val commonExtension: CommonExtension<*, *, *, *, *, *> =
            extensions.getByType(CommonExtension::class)
    commonExtension.apply {
        defaultConfig {
            minSdk {
                version = release(28)
            }
        }
    }
    

    ای جی پی ۹.۰

    val commonExtension: CommonExtension =
            extensions.getByType(CommonExtension::class)
    commonExtension.apply {
        defaultConfig.apply {
            minSdk {
                version = release(28)
            }
        }
    }
    

    برای افزونه‌هایی که طیف وسیعی از نسخه‌های AGP را هدف قرار می‌دهند، استفاده مستقیم از getter با نسخه‌های AGP پایین‌تر از ۹.۰ سازگار است.

DSL حذف شد

افزونه‌ی اندروید گریدل ۹.۰ موارد زیر را حذف می‌کند:

API های حذف شده

افزونه‌ی اندروید گریدل ۹.۰ موارد زیر را حذف می‌کند:

ویژگی‌های Gradle حذف شدند

ویژگی‌های Gradle زیر در ابتدا به عنوان راه‌هایی برای غیرفعال کردن سراسری ویژگی‌هایی که به طور پیش‌فرض فعال بودند، اضافه شدند.

این ویژگی‌ها به طور پیش‌فرض از AGP 8.0 یا پایین‌تر غیرفعال شده‌اند. برای ساخت کارآمدتر، این ویژگی‌ها را فقط در زیرپروژه‌هایی که از آنها استفاده می‌کنند، فعال کنید.

ملک عملکرد جایگزینی
android.defaults.buildfeatures.aidl فعال‌سازی کامپایل AIDL در تمام زیرپروژه‌ها با تنظیم ویژگی زیر در فایل‌های Gradle build پروژه‌ها، کامپایل AIDL را فقط در زیرپروژه‌هایی که منابع AIDL در آنها وجود دارد، فعال کنید:
android {
  buildFeatures {
    aidl = true
  }
}
در فایل Gradle build هر زیرپروژه حاوی منابع AIDL
android.defaults.buildfeatures.renderscript فعال کردن کامپایل RenderScript در تمام زیرپروژه‌ها با تنظیم ویژگی زیر در فایل‌های Gradle build پروژه‌ها، کامپایل رندراسکریپت را فقط در زیرپروژه‌هایی که منابع رندراسکریپت در آنها وجود دارد، فعال کنید:
android {
  buildFeatures {
    renderScript = true
  }
}

ویژگی‌های اجباری Gradle

اگر ویژگی‌های Gradle زیر را تنظیم کنید، AGP 9.0 خطایی ایجاد می‌کند.

دستیار ارتقاء افزونه‌ی Gradle اندروید، پروژه‌هایی را که از این ویژگی‌ها استفاده می‌کنند، به AGP 9.0 ارتقا نمی‌دهد.

ملک عملکرد
android.r8.integratedResourceShrinking کاهش منابع اکنون همیشه به عنوان بخشی از R8 اجرا می‌شود، پیاده‌سازی قبلی حذف شده است.

مشکلات برطرف شده

افزونه اندروید گریدل ۹.۰.۰-alpha10

مشکلات برطرف شده
افزونه گرادل اندروید
extractNativeLibs و useEmbeddedDex نباید از مانیفست بیایند
هشدارهای R8 در AGP 9.0.0-alpha09
پرز
کاتلین داخلی، .kotlin_module را به META-INF اضافه نمی‌کند.
مسیر کلاس Lint شامل کلاس‌های تکراری در نسخه‌های مختلف است
راه حل جایگزین override کردن منابع خصوصی کار نمی‌کند (tools:override = "true")

افزونه اندروید گریدل ۹.۰.۰-alpha09

مشکلات برطرف شده
افزونه گرادل اندروید
افزونه‌ی `legacy-kapt` برخلاف `kotlin-kapt`، پردازش حاشیه‌نویسی را نادیده می‌گیرد.
compileSdkSpec.minorApiLevel با SettingsExtension کار نمی‌کند.
[fused lib - public] کتابخانه‌ی fused تولید شده شامل منابع نمی‌شود.

افزونه اندروید گریدل ۹.۰.۰-alpha08

مشکلات برطرف شده
هیچ مشکل عمومی در AGP 9.0.0-alpha08 به عنوان رفع‌شده علامت‌گذاری نشده است.

افزونه اندروید گریدل ۹.۰.۰-alpha07

مشکلات برطرف شده
افزونه گرادل اندروید
اگر وظایف تولید کد وجود داشته باشد، ساخت با شکست مواجه می‌شود
با `android.builtInKotlin=false` و `android.newDsl=false` و `android.enableLegacyVariantApi=false`، استفاده از افزونه `kotlin-android` با خطای "API 'applicationVariants' منسوخ شده است" مواجه خواهد شد.
کاتلین داخلی در حل مشکل kotlin-stdlib بدون نسخه، زمانی که kotlin.stdlib.default.dependency=false باشد، ناموفق است.
DexData فایل را بدون بستن باز می‌کند و از پاکسازی جلوگیری می‌کند.
AndroidSourceDirectorySet باید گسترش PatternFilterable را در AGP 9.0 متوقف کند
خطای دستگاه تست در ماژول‌های فقط تست
خطای نادرست هنگام استفاده از گیرنده‌های زمینه در وسایل آزمایش
خطاهای نادرست IDE برای کد کاتلین در testFixtures

افزونه اندروید گریدل ۹.۰.۰-alpha06

مشکلات برطرف شده
افزونه گرادل اندروید
بهینه‌سازی جدید DSL به طور پیش‌فرض configuration.txt را ایجاد نمی‌کند.
AGP 8.13.0 نمی‌تواند نمودار ناوبری را در یک ماژول تأیید کند
AGP از API منسوخ شده Gradle استفاده می‌کند: نمادگذاری چند رشته‌ای
به کاربرانی که سعی در استفاده از کتابخانه multidex قدیمی با minSdkVersion >=21 دارند، هشدار داده شود
پرز
Lint ChecksSdkIntAtLeast Check بررسی نمی‌کند که آیا مقدار حاشیه‌نویسی شده صحیح است یا خیر.

افزونه اندروید گریدل ۹.۰.۰-alpha05

مشکلات برطرف شده
افزونه گرادل اندروید
android.proguard.failOnMissingFiles برای consumerProguardFiles کار نمی‌کند.
وابستگی افزونه Kotlin Gradle را به نسخه ۲.۲.۱۰ به‌روزرسانی کنید.
ایجاد KotlinJvmAndroidCompilation با استفاده از KGP API
حالت API صریح کاتلین برای تست منابع اعمال شده است
پرز
هشدار پرتاب پرز "نمی‌توان حافظه‌های پنهان K2 را پاک کرد"

افزونه اندروید گریدل ۹.۰.۰-alpha04

مشکلات برطرف شده
افزونه گرادل اندروید
نسخه پیش‌فرض جاوای مبدا/هدف را از جاوا ۸ به جاوا ۱۱ در AGP 9.0 تغییر دهید
مقدار پیش‌فرض android.useAndroidX را به true تغییر دهید.
هنگام اعمال افزونه kapt با کاتلین داخلی، استثنای بهتری ایجاد می‌شود.
پرز
هشدار پرتاب پرز "نمی‌توان حافظه‌های پنهان K2 را پاک کرد"

افزونه اندروید گریدل ۹.۰.۰-alpha03

مشکلات برطرف شده
افزونه گرادل اندروید
وقتی `isIncludeAndroidResources` فعال باشد، `process{Variant}UnitTestManifest` در ادغام کاربردهای tools:overrideLibrary در AGP 8.12.0 ناموفق عمل می‌کند.
AGP باعث ایجاد هشدارهای منسوخ شدن در Gradle برای وظایف تست JVM می‌شود
DependencyReportTask با حافظه پنهان پیکربندی سازگار نیست
پرز
اشکال: حذف منابع بلااستفاده، ترجمه‌های آنها را نیز حذف نمی‌کند و در مورد آن نیز سؤالی نمی‌پرسد

افزونه اندروید گریدل ۹.۰.۰-alpha02

مشکلات برطرف شده
افزونه گرادل اندروید
عدم موفقیت در ساخت برنامه زمانی که فایل proguard وجود ندارد
پرچم‌های پیش‌فرض gradle.properties مربوط به buildconfig را حذف کنید
مقدار پیش‌فرض targetSdk برنامه را به جای minSdk، بر اساس compileSdk تغییر دهید.

افزونه اندروید گریدل ۹.۰.۰-alpha01

مشکلات برطرف شده
افزونه گرادل اندروید
حذف AndroidSourceSet.jni منسوخ شده در AGP 9.0
حذف Installation.installOptions() در AGP 9.0
حذف BuildType.isRenderscriptDebuggable در AGP 9.0.
فایل android.defaults.buildfeatures.renderscript را حذف کنید.
`com.android.kotlin.multiplatform.library` با دستگاه‌های مدیریت‌شده‌ی Gradle از کار می‌افتد
پرچم‌های پیش‌فرض `android.defaults.buildfeatures.aidl` مربوط به gradle.properties را حذف کنید.