افزونه Android Gradle 8.4.0 (آوریل 2024)

پلاگین اندروید Gradle 8.4.0 یک نسخه اصلی است که شامل انواع ویژگی ها و بهبودهای جدید است.

سازگاری

حداکثر سطح API که افزونه Android Gradle 8.4 پشتیبانی می کند، سطح API 34 است. در اینجا سایر اطلاعات سازگاری وجود دارد:

حداقل نسخه نسخه پیش فرض یادداشت ها
گریدل 8.6 8.6 برای کسب اطلاعات بیشتر، به روز رسانی Gradle را ببینید.
ابزارهای ساخت SDK 34.0.0 34.0.0 ابزارهای ساخت SDK را نصب یا پیکربندی کنید .
NDK N/A 26.1.10909125 نسخه دیگری از NDK را نصب یا پیکربندی کنید .
JDK 17 17 برای کسب اطلاعات بیشتر، به تنظیم نسخه JDK مراجعه کنید.

در زیر ویژگی های جدید پلاگین Gradle اندروید 8.4 آمده است.

پچ منتشر می شود

در زیر لیستی از پچ های منتشر شده در Android Studio Jellyfish و Android Gradle پلاگین 8.4 است.

Android Studio Jellyfish | پچ 2 2023.3.1 و AGP 8.4.2 (ژوئن 2024)

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

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

اگر در حال حاضر یک ساخت Android Studio در کانال پایدار دارید، می‌توانید با کلیک کردن روی Help > Check for Updates (یا Android Studio > Check for Updates در macOS)، به‌روزرسانی را دریافت کنید. در غیر این صورت، آخرین بیلد پایدار را دانلود کنید .

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

  • برای لغو دسترسی برای ادغام OAuth، به Applications > Authorized OAuth Apps بروید و دسترسی به نشانه JetBrains IDE Integration را لغو کنید.
  • برای لغو دسترسی برای PAT ها، به نشانه های دسترسی شخصی بروید و توکن صادر شده برای افزونه GitHub را حذف کنید. نام رمز پیش‌فرض پلاگین ادغام IntelliJ IDEA GitHub است، اما ممکن است از یک نام سفارشی استفاده کنید.

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

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

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

Android Studio Jellyfish | پچ 1 2023.3.1 و AGP 8.4.1 (مه 2024)

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

کلاس های کتابخانه کاهش یافته است

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

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

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

مسائل رفع شد

پلاگین اندروید Gradle 8.4.0

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

پلاگین اندروید Gradle 8.4.1

مسائل ثابت شده
افزونه Gradle اندروید
اجازه سرکوب یک هشدار در مورد منسوخ شدن پشتیبانی JDK 21 برای هدف قرار دادن java 8
دکسر (D8)
java.lang.VerifyError: تأییدکننده کلاس رد شد
خطای تبدیل فرمت R8 نسخه جدید پس از مبهم سازی
ساخت‌های میانی ممکن است محتوای مصنوعی کاملی برای مقالات خرد نداشته باشند

پلاگین اندروید Gradle 8.4.2

مسائل ثابت شده
افزونه Gradle اندروید
به نظر می رسد AGP 8.4 بارگیری های GMD را در CI شکسته است