این صفحه حاوی یادداشتهای انتشار برای نسخههای پیشنمایش افزونه 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
جایگزین کنید. این ممکن است پیچیدهتر باشد، زیرا APIandroidComponents
به گونهای طراحی شده است که پایدارتر باشد تا افزونهها را برای مدت طولانیتری سازگار نگه دارد. برای مثالها، 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) } } |
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 ، دیگر قابل دسترسی نیست. | false → true | شما میتوانید با تنظیم android.newDsl=false انصراف دهید.وقتی همه افزونهها و منطق ساخت مورد استفاده پروژه شما سازگار شدند، گزینه انصراف را حذف کنید. |
android.builtInKotlin | پشتیبانی از کامپایل مستقیم کد کاتلین در افزونهی اندروید گریدل، بدون افزونهی org.jetbrains.kotlin.android ، فعال شد. | false → true | در صورت امکان، با حذف استفاده از افزونه org.jetbrains.kotlin.android ، از کاتلین داخلی استفاده کنید. در غیر این صورت، با تنظیم android.builtInKotlin=false از این کار خودداری کنید. |
android.uniquePackageNames | الزام میکند که هر کتابخانه نام بستهی مجزایی داشته باشد. | false → true | برای تمام کتابخانههای پروژه خود نامهای بسته منحصر به فرد تعیین کنید. اگر این امکان وجود ندارد، میتوانید این پرچم را هنگام مهاجرت غیرفعال کنید. |
android.dependency.useConstraints | استفاده از محدودیتهای وابستگی بین پیکربندیها را کنترل میکند. مقدار پیشفرض در AGP 9.0 false است که فقط از محدودیتها در تستهای دستگاه برنامه (AndroidTest) استفاده میکند. تنظیم این مقدار روی true ، رفتار را به حالت ۸.۱۳ برمیگرداند. | true → false | از محدودیتهای وابستگی در همه جا استفاده نکنید، مگر اینکه به آنها نیاز داشته باشید. پذیرش پیشفرض جدید این پرچم، بهینهسازیهایی را در فرآیند وارد کردن پروژه نیز امکانپذیر میکند که باید زمان وارد کردن را برای ساختهایی با زیرپروژههای کتابخانه اندروید زیاد کاهش دهد. |
aandroid.enableAppCompileTimeRClass | کد موجود در برنامهها را در برابر یک کلاس R غیرنهایی کامپایل کنید، و کامپایل برنامه را با کامپایل کتابخانه هماهنگ کنید. این امر باعث بهبود افزایشی شدن میشود و راه را برای بهینهسازیهای عملکرد آینده در جریان پردازش منابع هموار میکند. | false → true | بسیاری از پروژهها میتوانند رفتار جدید را بدون هیچ تغییری در منبع بپذیرند. اگر فیلدهای کلاس R در جایی استفاده میشوند که به یک ثابت نیاز دارند، مانند switch caseها، کد را به صورت زنجیرهای بازنویسی کنید تا از دستورات if استفاده شود. |
android.sdk.defaultTargetSdkToCompileSdkIfUnset | از نسخه کامپایل SDK به عنوان مقدار پیشفرض برای نسخه SDK هدف در برنامهها و تستها استفاده میکند. قبل از این تغییر، نسخه SDK هدف به طور پیشفرض روی نسخه SDK حداقل قرار میگرفت. | false → true | نسخه SDK هدف را برای برنامهها و آزمایشها به صراحت مشخص کنید. |
android.onlyEnableUnitTestForTheTestedBuildType | فقط کامپوننتهای تست واحد را برای نوع ساخت تستشده ایجاد میکند. در پروژه پیشفرض، این منجر به یک تست واحد برای اشکالزدایی میشود، در حالی که رفتار قبلی این بود که تستهای واحد برای اشکالزدایی یا انتشار اجرا شوند. | false → true | اگر پروژه شما برای اشکالزدایی و انتشار نیازی به آزمایش ندارد، نیازی به تغییر نیست. |
android.proguard.failOnMissingFiles | اگر هر یک از فایلهای keep مشخصشده در AGP DSL روی دیسک وجود نداشته باشند، ساخت با خطا مواجه میشود. قبل از این تغییر، غلطهای املایی در نام فایلها منجر به نادیده گرفته شدن بیسروصدای فایلها میشد. | false → true | هرگونه اعلان نامعتبر در فایلهای proguard را حذف کنید |
android.r8.optimizedResourceShrinking | با در نظر گرفتن کلاسها و منابع اندروید به صورت همزمان، به R8 اجازه میدهد منابع اندروید کمتری را نگه دارد. | false → true | اگر قوانین مربوط به نگهداری پروژه شما از قبل تکمیل شده است، نیازی به تغییر نیست. |
android.r8.strictFullModeForKeepRules | به R8 اجازه میدهد تا با نگه نداشتن ضمنی سازنده پیشفرض هنگام نگه داشتن یک کلاس، مقدار کمتری را نگه دارد. یعنی، -keep class A دیگر به این معنی نیست -keep class A { <init>(); } | false → true | اگر قوانین مربوط به نگهداری پروژه شما از قبل تکمیل شده است، نیازی به تغییر نیست. در هر موردی که نیاز به نگهداشتن سازنده پیشفرض دارید، در قوانین keep پروژه خود -keep class A با -keep class A { <init>(); } جایگزین کنید. |
android.defaults.buildfeatures.resvalues | فعال کردن resValues در تمام زیرپروژهها | true → false | با تنظیم موارد زیر در فایلهای Gradle build پروژهها، resValues فقط در زیرپروژههایی که به آن نیاز دارند فعال کنید: android { buildFeatures { resValues = true } } |
android.defaults.buildfeatures.shaders | کامپایل شیدر را در تمام زیرپروژهها فعال میکند. | true → false | با تنظیم موارد زیر در فایلهای 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 گنجانده شده است. | false → true | اگر میخواهید از بهینهسازی جلوگیری کنید، میتوانید در کنار استفاده از 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 | false → true | کتابخانههای منتشر شده باید هرگونه قانون ناسازگار را حذف کنند. کتابخانههای داخلی باید هرگونه قانون ناسازگار اما مورد نیاز را به یک proguardFile در یک ماژول برنامه منتقل کنند. با تنظیم android.r8.globalOptionsInConsumerRules.disallowed=false از این کار خودداری کنید. هنگامی که تمام فایلهای consumer keep شما سازگار شدند، گزینه عدم سازگاری را حذف کنید. |
ویژگیهای حذفشده
افزونهی اندروید گریدل ۹.۰ قابلیتهای زیر را حذف میکند:
- پشتیبانی از اپلیکیشنهای Wear OS
AGP 9.0 پشتیبانی از جاسازی برنامههای Wear OS را که دیگر در Play پشتیبانی نمیشود، حذف میکند. این شامل حذف پیکربندیهایwearApp
و DSL مربوط بهAndroidSourceSet.wearAppConfigurationName
DSL میشود. برای نحوه انتشار برنامه خود در Wear OS، به بخش «توزیع در Wear OS» مراجعه کنید. - وظایف گزارش
androidDependencies
وsourceSets
دیاسال تغییر کرد
افزونهی اندروید گریدل ۹.۰ تغییرات 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 حذف شد
افزونهی اندروید گریدل ۹.۰ موارد زیر را حذف میکند:
AndroidSourceSet.jni
، زیرا کاربردی نبود.AndroidSourceSet.wearAppConfigurationName
، همانطور که مربوط به حذف پشتیبانی از برنامه Wear OS است.BuildType.isRenderscriptDebuggable
، زیرا کاربردی نبود.DependencyVariantSelection
. این باDependencySelection
جایگزین شده است که به صورتkotlin.android.localDependencySelection
نمایش داده میشود.Installation.installOptions(String)
. این با ویژگی تغییرپذیرInstallation.installOptions
جایگزین میشود.بلوک
PostProcessing
آزمایشی، اما هرگز تثبیتشده.ProductFlavor.setDimension
که با ویژگیdimension
جایگزین شده است.LanguageSplitOptions
که فقط برای Google Play Instant مفید بود و دیگر استفاده نمیشود.
API های حذف شده
افزونهی اندروید گریدل ۹.۰ موارد زیر را حذف میکند:
AndroidComponentsExtension.finalizeDSl
. باfinalizeDsl
جایگزین شده است.Component.transformClassesWith
. باInstrumentation.transformClassesWith
جایگزین شده است.Component.setAsmFramesComputationMode
. این باInstrumentation.setAsmFramesComputationMode
جایگزین شده است.ComponentBuilder.enabled
. باComponentBuilder.enable
جایگزین شده است.DependenciesInfoBuilder.includedInApk
. باincludeInApk
جایگزین شده استDependenciesInfoBuilder.includedInBundle
. باincludeInBundle
جایگزین شده است.GeneratesApk.targetSdkVersion
. باtargetSdk
جایگزین شده استVariant.minSdkVersion
. باminSdk
جایگزین شده است.Variant.maxSdkVersion
. باmaxSdk
جایگزین شده است.Variant.targetSdkVersion
. باtargetSdk
جایگزین شده است.Variant.unitTest
، زیرا برای افزونهcom.android.test
قابل اجرا نبود.unitTest
در زیرگروههایVariantBuilder
کهHasUnitTest
گسترش میدهند، در دسترس است.VariantBuilder.targetSdk
وtargetSdkPreview
، زیرا در کتابخانهها معنیدار نبودند. به جای آنها ازGeneratesApkBuilder.targetSdk
یاGeneratesApkBuilder.targetSdkPreview
استفاده کنید.VariantBuilder.enableUnitTest
، زیرا برای افزونهcom.android.test
قابل اجرا نبود.enableUnitTest
در زیرگروههایVariantBuilder
کهHasUnitTestBuilder
گسترش میدهند، در دسترس است.VariantBuilder.unitTestEnabled
به نفعenableUnitTest
با نام سازگارتر در زیرگروههایVariantBuilder
کهHasUnitTestBuilder
گسترش میدهند، حذف شده است.VariantOutput.enable
. باenabled
جایگزین شده است.FeaturePlugin
وFeatureExtension
منسوخ و غیرفعال شدهاند.APIهای
BaseExtension.registerTransform
منسوخ و غیرفعال شده، که فقط برای امکان کامپایل در برابر آخرین نسخه AGP باقی مانده بودند، در حالی که هدف آنها اجرا روی AGP 4.2 یا پایینتر بود.
ویژگیهای Gradle حذف شدند
ویژگیهای Gradle زیر در ابتدا به عنوان راههایی برای غیرفعال کردن سراسری ویژگیهایی که به طور پیشفرض فعال بودند، اضافه شدند.
این ویژگیها به طور پیشفرض از AGP 8.0 یا پایینتر غیرفعال شدهاند. برای ساخت کارآمدتر، این ویژگیها را فقط در زیرپروژههایی که از آنها استفاده میکنند، فعال کنید.
ملک | عملکرد | جایگزینی |
---|---|---|
android.defaults.buildfeatures.aidl | فعالسازی کامپایل AIDL در تمام زیرپروژهها | با تنظیم ویژگی زیر در فایلهای Gradle build پروژهها، کامپایل AIDL را فقط در زیرپروژههایی که منابع AIDL در آنها وجود دارد، فعال کنید:android { buildFeatures { aidl = true } } |
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
مشکلات برطرف شده | ||||
---|---|---|---|---|
افزونه گرادل اندروید |
| |||
پرز |
|
افزونه اندروید گریدل ۹.۰.۰-alpha09
مشکلات برطرف شده | ||||
---|---|---|---|---|
افزونه گرادل اندروید |
|
افزونه اندروید گریدل ۹.۰.۰-alpha08
مشکلات برطرف شده | |
---|---|
هیچ مشکل عمومی در AGP 9.0.0-alpha08 به عنوان رفعشده علامتگذاری نشده است. |
افزونه اندروید گریدل ۹.۰.۰-alpha07
مشکلات برطرف شده | |||||||||
---|---|---|---|---|---|---|---|---|---|
افزونه گرادل اندروید |
|
افزونه اندروید گریدل ۹.۰.۰-alpha06
مشکلات برطرف شده | |||||
---|---|---|---|---|---|
افزونه گرادل اندروید |
| ||||
پرز |
|
افزونه اندروید گریدل ۹.۰.۰-alpha05
مشکلات برطرف شده | |||||
---|---|---|---|---|---|
افزونه گرادل اندروید |
| ||||
پرز |
|
افزونه اندروید گریدل ۹.۰.۰-alpha04
مشکلات برطرف شده | ||||
---|---|---|---|---|
افزونه گرادل اندروید |
| |||
پرز |
|
افزونه اندروید گریدل ۹.۰.۰-alpha03
مشکلات برطرف شده | ||||
---|---|---|---|---|
افزونه گرادل اندروید |
| |||
پرز |
|
افزونه اندروید گریدل ۹.۰.۰-alpha02
مشکلات برطرف شده | ||||
---|---|---|---|---|
افزونه گرادل اندروید |
|
افزونه اندروید گریدل ۹.۰.۰-alpha01
مشکلات برطرف شده | |||||||
---|---|---|---|---|---|---|---|
افزونه گرادل اندروید |
|