افزایه Android Gradle نسخه ۸.۴.۰ (آوریل ۲۰۲۴)

افزایه Android Gradle نسخه ۸.۴.۰ یک نسخه اصلی است که شامل انواع مختلفی از ویژگی‌های جدید و بهبودها است.

سازگاری

حداکثر سطح میانای برنامه‌سازی کاربردی که افزایه Android Gradle نسخه ۸.۴ پشتیبانی می‌کند سطح میانای برنامه‌سازی کاربردی ۳۴ است. در اینجا اطلاعات سازگاری دیگری ارائه شده است:

حداقل نسخه نسخه پیش‌فرض یادداشت‌ها
Gradle ۸٫۶ ۸٫۶ برای کسب اطلاعات بیشتر، به‌روزرسانی Gradle را ببینید.
ابزارهای ساخت کیت توسعه نرم‌افزار ‫۳۴.۰.۰ ‫۳۴.۰.۰ «ابزارهای ساخت کیت توسعه نرم‌افزار» را نصب یا پیکربندی کنید.
NDK موجود نیست 26.1.10909125 نسخه دیگری از NDK را نصب یا پیکربندی کنید.
JDK 17 17 برای کسب اطلاعات بیشتر، تنظیم نسخه JDK را ببینید.

ویژگی‌های جدید در افزایه Android Gradle 8.4 در زیر آمده است.

نسخه‌های پخش وصله

در زیر فهرستی از نسخه‌های وصله در Android Studio Jellyfish و افزایه Android Gradle 8.4 ارائه شده است.

Android Studio Jellyfish | ‏ 2023.3.1 Patch 2 و AGP 8.4.2 (ژوئن ۲۰۲۴)

به‌روزرسانی امنیتی مهم: آسیب‌پذیری امنیتی در افزایه GitHub دردسترس در Android Studio Iguana | 2023.2.1 و نسخه‌های بالاتر می‌تواند رموز دسترسی را درمعرض طرف‌های غیرمجاز قرار دهد.

رفع مشکل: Jetbrains مشکل را در محصولات پلاتفرم IntelliJ حل کرده است، و رفع مشکل اکنون در Android Studio Jellyfish | 2023.3.1 Patch 2 (2023.3.1.20) دردسترس است.

اگر ازقبل ساخت Android Studio در کانال پایدار دارید، می‌توانید با کلیک کردن روی راهنما > بررسی به‌روزرسانی‌ها (یا Android Studio > بررسی به‌روزرسانی‌ها در macOS) به‌روزرسانی را دریافت کنید. درغیراین‌صورت، جدیدترین ساخت پایدار را بارگیری کنید.

علاوه‌براین، اگر به‌طور فعال از عملکرد درخواست کشش GitHub در «محیط توسعه یکپارچه» استفاده کرده‌اید، قویاً توصیه می‌کنیم که همه نشان‌های GitHub را که افزایه استفاده می‌کند باطل کنید. ازآنجایی‌که افزایه می‌تواند از یکپارچه‌سازی OAuth یا کدهای دسترسی شخصی (PAT) استفاده کند، لطفاً هر دو را بررسی کنید و درصورت لزوم آن‌ها را باطل کنید:

  • برای لغو دسترسی به یکپارچه‌سازی OAuth، به برنامه‌ها > برنامه‌های مجاز OAuth بروید و دسترسی به یکپارچه‌سازی JetBrains IDE را لغو کنید.
  • برای فسخ کردن دسترسی «کدهای دسترسی شخصی»، به کدهای دسترسی شخصی بروید و کد صادرشده برای افزایه GitHub را حذف کنید. نام پیش‌فرض کد افزایه یکپارچه‌سازی IntelliJ IDEA GitHub است، اما ممکن است از نام سفارشی استفاده کنید.

پس‌از لغو دسترسی برای نشان(های) موردنظر، باید افزایه را دوباره راه‌اندازی کنید تا همه ویژگی‌های افزایه، ازجمله عملیات Git، دوباره کار کنند.

بابت هرگونه مشکل پیش‌آمده عذرخواهی می‌کنیم و از همه کاربران می‌خواهیم فوراً به‌روزرسانی کنند تا از کد و داده‌هایشان محافظت کنند.

این به‌روزرسانی جزئی همچنین شامل این رفع اشکال‌ها می‌شود.

Android Studio Jellyfish | 2023.3.1 Patch 1 و AGP 8.4.1 (مه ۲۰۲۴)

این به‌روزرسانی جزئی شامل این رفع اشکال‌ها می‌شود.

کلاس‌های کتابخانه کوچک شده است

از «افزایه Android Gradle» نسخه ۸.۴، اگر پروژه کتابخانه Android کوچک‌سازی شود، کلاس‌های برنامه کوچک‌شده برای انتشار بین‌پروژه‌ای منتشر خواهد شد. این یعنی اگر برنامه‌ای به نسخه کوچک‌شده کتابخانه Android زیرپروژه‌ها وابسته باشد، فایل APK شامل کلاس‌های کتابخانه Android کوچک‌شده خواهد بود. درصورتی‌که کلاس‌های فایل APK وجود ندارد، ممکن است لازم باشد قوانین نگهداری کتابخانه را اصلاح کنید.

درصورتی‌که درحال ساختن و انتشار AAR هستید، کوزه‌های محلی که کتابخانه شما به آن‌ها وابسته است بدون کوچک شدن در AAR گنجانده خواهند شد، که یعنی کوچک‌کننده کد روی آن‌ها اجرا نخواهد شد.

برای برگشتن به رفتار قبلی، android.disableMinifyLocalDependenciesForLibraries را در فایل gradle.properties تنظیم کنید و گزارش اشکال ثبت کنید. نسخه‌های آتی AGP این پرچم را برمی‌دارند.

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

افزایه Android Gradle نسخه ۸.۴.۲

مشکلات برطرف‌شده
افزایه Android Gradle
به‌نظر می‌رسد AGP 8.4 بارگیری‌های GMD را در CI خراب می‌کند

افزایه Android Gradle نسخه ۸.۴.۱

مشکلات برطرف‌شده
افزایه Android Gradle
اجازه دادن به سرکوب کردن هشدار درباره منسوخ شدن پشتیبانی JDK 21 برای هدف‌یابی جاوا ۸
Dexer (D8)
java.lang.VerifyError: درستی‌سنج کلاس را رد کرد
خطای تبدیل قالب نسخه جدید R8 پس‌از مبهم‌سازی
ساخت‌های میانجی ممکن است محتوای ترکیبی جهانی کامل برای چسبانه‌ها نداشته باشند

افزایه Android Gradle نسخه ۸.۴.۰

مشکلات برطرف‌شده
افزایه Android Gradle
بهبود پیام خطا برای اینکه چرا گزینه `--release` نمی‌تواند برای JavaCompile استفاده شود
غیرفعال کردن ذخیره کردن در حافظه نهان MergeSourceSetFolders بااستفاده از @DoNotCacheByDefault
نسخه JaCoCo در AGP 8.2.0 تنظیم نشد
‫DynamicFeatureBuildType بدون isDebuggable است
کلاس‌های کتابخانه کوچک‌شده به‌درستی برای مصرف بین‌پروژه‌ای منتشر نمی‌شوند
ارائه API‏ Variant#sources که فایل‌های تولیدشده را مستثنا می‌کند
مدل‌های AGP وابستگی‌های پروژه java-platform را دربرنمی‌گیرد
‫ExtractAarTransform فایل classes.jar غیرقابل‌تولید مجدد را برای فایل‌های aar که فایل classes.jar ندارند ایجاد می‌کند
اجازه پیکربندی sourceInformation از ComposeOptions
فیلد sdk_runtime در پیام android.bundle.DeviceSpec پیدا نشد
پشتیبانی از compileOnlyApi
وقتی پردازش منبع غیرفعال باشد، R8 در واحد کتابخانه ناموفق است
افزودن قابلیت تغییر نام آرتیفکت درطول تبدیل
افزودن برونداد تکلیف به srcDir منبع‌مجموعه‌های.androidMain.resources وابستگی تکلیف ایجاد نمی‌کند
‫AndroidPluginVersion.toString()‎ با ۰ شروع نمی‌شود
‫Artifacts.add(FileSystemLocation) باید محدودکننده‌تر باشد.
‫AGP نسخه 8.3.0-alpha11 فایل APK نسخه پخشی تولید می‌کند که در زمان راه‌اندازی با android.content.res.Resources$NotFoundException ازکار می‌افتد
وظیفه نصب «افزایه Android Gradle» نسخه ۸.۲.۰ در پروژه‌ای که از ویژگی‌های پویا استفاده می‌کند ناموفق است
ترجمه AIDL با IndexOutOfBoundsException ناموفق است: نمایه ۰ خارج از محدوده برای طول ۰ است
مشکل مدیریت ورودی‌های افزایشی MergeJavaResourcesTask
‫AGP 8.3.0-alpha02 به کتابخانه‌هایی با آسیب‌پذیری‌های امنیتی شناخته‌شده وابسته است
الگوی فعالیت انتخاب‌شده به پروژه‌ای با وابستگی‌های androidx.* نیاز دارد
«دستیار ارتقا AGP» به‌اشتباه consumerProguardFiles را از واحد برمی‌دارد
«دستیار ارتقا AGP» بی‌نهایت بار می‌کند
‫SourceDirectories#static نباید به تکلیف GenerateBuildConfig وابسته باشد
پیش‌نمای Compose نتوانست کلاس‌ها را از وابستگی انتقالی حل کند
‫AGP 8.3 تکلیف zipApksFor را خراب می‌کند
آرتیفکت‌های AndroidX Desktop که در Android APK بسته‌بندی شده‌اند
Lint
‫GradleModelMocker چارچوب آزمایش Lint اجازه نمی‌دهد نسخه کتابخانه تنظیم شود
‫Lint K2 UAST: UCallableReferenceExpression نوع مشخص‌کننده اشتباهی را گزارش می‌کند
مثبت کاذب Lint با useK2Uast=true با توابع سربارگذاری‌شده
[BuildTool/Lint] بررسی ویژگی سازنده ChecksSdkIntAtLeast
ادغام Lint
‫Lint نتوانست وابستگی KMP را رفع ابهام کند