افزایه Android Gradle نسخه ۳.۱.۰ (مارس ۲۰۱۸)
این نسخه افزایه Android به موارد زیر نیاز دارد:
| حداقل نسخه | نسخه پیشفرض | یادداشتها | |
|---|---|---|---|
| Gradle | ۴٫۴ | ۴٫۴ | برای کسب اطلاعات بیشتر، بهروزرسانی Gradle را ببینید. |
| ابزارهای ساخت کیت توسعه نرمافزار | ۲۷.۰.۳ | ۲۷.۰.۳ | «ابزارهای ساخت کیت توسعه نرمافزار» را نصب یا پیکربندی کنید. بهخاطر داشته باشید که دیگر لازم نیست نسخه ابزارهای ساخت را بااستفاده از دارایی android.buildToolsVersion مشخص کنید—افزایه بهطور پیشفرض از حداقل نسخه موردنیاز استفاده میکند. |
گردآورنده جدید DEX، D8
بهطور پیشفرض، Android Studio اکنون از یک کامپایلر DEX جدید به نام D8 استفاده میکند. ترجمه DEX
فرایند تبدیل .class بایتکد به
.dex بایتکد برای «زمان اجرای Android» (یا Dalvik برای
نسخههای قدیمیتر Android) است. در مقایسه با کامپایلر قبلی، که DX نامیده میشد، D8
سریعتر کامپایل میکند و فایلهای DEX کوچکتری تولید میکند، و درعینحال عملکرد زمان اجرای برنامه یکسان یا
بهتری دارد.
D8 نباید گردش کار توسعه برنامه روزانه شما را تغییر دهد. بااینحال، اگر
با هرگونه مشکلی مربوط به کامپایلر جدید مواجه شدید، لطفاً
گزارش اشکال ارسال کنید. میتوانید موقتاً D8 را غیرفعال کنید و با افزودن موارد زیر به فایل gradle.properties پروژه، از DX استفاده کنید:
android.enableD8=false
برای پروژههایی که
از ویژگیهای زبان Java 8 استفاده میکنند،
شکرزدایی افزایشی بهطور پیشفرض فعال است. با مشخص کردن موارد زیر در فایل gradle.properties پروژه میتوانید آن را غیرفعال کنید:
android.enableIncrementalDesugaring=false.
کاربران پیشنمایش: اگر ازقبل از نسخه پیشنمایش D8 استفاده میکنید، توجه داشته باشید که اکنون دربرابر کتابخانههای موجود در ابزارهای ساخت SDK، نه JDK، کامپایل میشود. بنابراین، اگر به «میاناهای برنامهسازی کاربردی» که در JDK وجود دارند اما در کتابخانههای ابزارهای ساخت SDK وجود ندارند دسترسی پیدا کنید، خطای کامپایل دریافت میکنید.
تغییرات رفتار
-
هنگام ساختن چندین فایل APK که هرکدام یک ABI متفاوت را هدفیابی میکنند، دیگر بهطور پیشفرض برای ABIهای زیر فایل APK تولید نمیکند:
mips،mips64، وarmeabi.اگر میخواهید فایلهای APK بسازید که این «رابطهای دودویی کاربردی» را هدفیابی کند، باید از NDK r16b یا نسخههای پایینتر استفاده کنید و «رابطهای دودویی کاربردی» را در فایل
build.gradleخود مشخص کنید، همانطور که در زیر نشان داده شده است:splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
افزایه Android اکنون ورودیهای حافظه نهان ساخت حافظه نهان را که قدیمیتر از ۳۰ روز هستند تخلیه میکند.
-
انتقال
"auto"بهresConfigدیگر بهطور خودکار منابع رشتهای را برای بستهبندی در APK شما انتخاب نمیکند. اگر به استفاده از"auto"ادامه دهید، افزایه همه منابع رشتهای را که برنامه شما و وابستگیهایش ارائه میدهند بستهبندی میکند. بنابراین، باید درعوض هر منطقه زبانی را که میخواهید افزایه در APK شما بستهبندی شود مشخص کنید. -
ازآنجاییکه واحدهای محلی نمیتوانند به APK آزمایشی برنامه شما وابسته باشند، افزودن وابستگیها به آزمایشهای ابزاری شما بااستفاده از پیکربندی
androidTestApiبهجایandroidTestImplementationباعث میشود Gradle هشدار زیر را صادر کند:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
تصحیحات
- مشکلی را برطرف میکند که در آن Android Studio وابستگیها را در ساختهای ترکیبی بهدرستی تشخیص نمیداد.
- مشکلی را برطرف میکند که در آن هنگام بار کردن افزایه Android چند بار در یک ساخت (برای مثال، وقتی چند زیرپروژه هرکدام افزایه Android را در مسیر کلاس buildscript خود دارند)، خطای همگامسازی پروژه دریافت میکنید.