این صفحه مشکلات شناختهشدهی Android Studio Otter 3 Feature Drop و افزونهی Android Gradle 9.0 را پیگیری میکند. اگر با مشکلی مواجه شدید که قبلاً در اینجا ذکر نشده است، لطفاً آن را گزارش دهید .
ارتقا به پیشنمایش: هر نسخه از اندروید استودیو و افزونه اندروید گریدل با هدف بهبود پایداری و عملکرد و افزودن ویژگیهای جدید منتشر میشود. برای تجربه مزایای نسخههای آینده، همین حالا پیشنمایش اندروید استودیو را دانلود و نصب کنید.
Known Issues with Android Studio
این بخش مشکلات شناختهشدهای را که در آخرین نسخه پایدار اندروید استودیو وجود دارند، شرح میدهد.
کاتلین ۲.۰: لامداها را نمیتوان در Layout Inspector حل کرد
هنگام استفاده از کاتلین ۲.۰، لامبداها قابل تفسیر نیستند و Layout Inspector نمیتواند طبق معمول به کد منبع لامبدا برود.
راه حل : گزینه کامپایلر زیر را به عنوان راه حل اضافه کنید تا این مشکل برطرف شود:
kotlin {
compilerOptions {
freeCompilerArgs.add("-Xlambdas=class")
}
}
اجرای پیکربندی بدون "قبل از راهاندازی" Gradle-aware منجر به خطای استقرار میشود
مشکلی در Android Studio Ladybug Feature Drop Canary 9 وجود داشت که اطلاعات پیکربندی اجرا را از پروژههایی که با آن نسخه باز شده بودند، حذف میکرد. اگر پروژه خود را در مقطعی با آن نسخه باز کردید و اجرای برنامه شما منجر به خطای "loading build artifacts" شد، بررسی کنید که پیکربندی اجرای فعال، مرحله "Gradle-aware Make" را در بخش "Before launch" داشته باشد. برای تأیید این موضوع، روی Run/Debug Configurations > Edit Configurations کلیک کنید، روی پیکربندی اجرای فعال کلیک کنید و تأیید کنید که مرحله "Gradle-aware Make" در بخش "Before launch" وجود دارد. متأسفانه اندروید استودیو نمیتواند این مشکل را به طور خودکار برطرف کند زیرا ممکن است برخی از پیکربندیهای اجرا عمداً بدون مرحله "Gradle-aware Make" تنظیم شده باشند.
«اعمال تغییرات و راهاندازی مجدد فعالیت» فعالیت را در دستگاهها یا شبیهسازهای سطح API 35 مجدداً راهاندازی نمیکند.
وقتی تغییرات کد را با استفاده از «اعمال تغییرات و راهاندازی مجدد فعالیت» در یک دستگاه API 35 اعمال میکنید، برنامه مجدداً راهاندازی نمیشود و تأثیر تغییرات را مشاهده نخواهید کرد. اگر برنامه را دوباره اجرا کنید، تأثیر تغییرات کد را مشاهده خواهید کرد. تیم ما به طور فعال در حال بررسی این موضوع است.
پنجره دستیار فایربیس یک پیام خطا نمایش میدهد
اگر پنجره دستیار فایربیس (Tools > Firebase از منوی اصلی) پیام خطایی را نمایش داد، حافظههای پنهان (cache) را نامعتبر کنید و اندروید استودیو را مجدداً راهاندازی کنید تا خطا برطرف شود.
Can't isolate a view using Layout Inspector
The ability to isolate a view using the embedded Layout Inspector is temporarily unavailable. We're working on fixing this issue in a future release.
همه گرههای Compose با استفاده از Layout Inspector قابل بررسی نیستند.
اگر متوجه شدید که هنگام استفاده از Layout Inspector همه گرههای Compose قابل بررسی نیستند، احتمالاً به دلیل اشکالی است که در Compose نسخه ۱.۵.۰-alpha۰۴ برطرف شده است. اگر با این مشکل مواجه هستید، مطمئن شوید که Compose نسخه ۱.۵.۰-alpha۰۴ یا بالاتر را ارتقا دادهاید.
Error when rendering Compose Preview
با شروع از Android Studio Chipmunk، اگر در پنل issues با java.lang.NoSuchFieldError: view_tree_saved_state_registry_owner یا java.lang.ClassNotFoundException: androidx.savedstate.R$id مواجه شدید، مطمئن شوید که وابستگی debugImplementation را به androidx.lifecycle:lifecycle-viewmodel-savedstate در ماژول خود اضافه کردهاید.
اگر در پنل مشکلات خطای java.lang.NoSuchFieldError: view_tree_lifecycle_owner مشاهده میکنید، مطمئن شوید که وابستگی debugImplementation را به androidx.lifecycle:lifecycle-runtime در ماژول خود اضافه کردهاید.
اگر در پنل issues java.lang.NoClassDefFoundError: Could not initialize class androidx.customview.poolingcontainer.PoolingContainer یا java.lang.NoClassDefFoundError: androidx/customview/poolingcontainer/PoolingContainerListener مواجه میشوید، مطمئن شوید که وابستگی debugImplementation را به androidx.customview:customview-poolingcontainer در ماژول خود اضافه کردهاید.
خطا هنگام استفاده از رمزهای عبور مختلف برای کلید و فروشگاه کلید
از نسخه ۴.۲ به بعد، اندروید استودیو اکنون روی JDK 11 اجرا میشود. این بهروزرسانی باعث تغییر رفتاری اساسی در رابطه با کلیدهای امضا میشود.
وقتی به مسیر Build > Generate Signed Bundle / APK میروید و سعی میکنید امضای برنامه را برای یک بسته برنامه یا یک APK پیکربندی کنید، وارد کردن رمزهای عبور مختلف برای کلید و keystore ممکن است منجر به خطای زیر شود:
Key was created with errors:
Warning: Different store and Key passwords not supported for PKCS12 Key stores
برای حل این مشکل، رمز عبور یکسانی را هم برای کلید و هم برای keystore وارد کنید.
اندروید استودیو بعد از نصب نسخه ۴.۲ اجرا نمیشود
استودیو سعی میکند فایلهای .vmoptions قبلی را وارد کرده و آنها را برای کار با garbage collector مورد استفاده JDK 11 پاکسازی کند. اگر این فرآیند با شکست مواجه شود، ممکن است IDE برای برخی از کاربرانی که گزینههای ماشین مجازی سفارشی را در فایل .vmoptions تنظیم میکنند، شروع به کار نکند.
برای حل این مشکل، توصیه میکنیم گزینههای سفارشی را در فایل .vmoptions به صورت کامنت (با استفاده از کاراکتر "#") قرار دهید. فایل .vmoptions را میتوانید در مکانهای زیر پیدا کنید:
ویندوز
C:\Users\YourUserName\AppData\ [Local|Roaming] \Google\AndroidStudio4.2\studio64.exe.vmoptions
مکاواس
~/Library/Application Support/Google/AndroidStudio4.2/studio.vmoptions
لینوکس
~/.config/Google/AndroidStudio4.2/studio64.vmoptions
If Studio still doesn't start after trying this workaround, see Studio doesn't start after upgrade below.
برنامههایی که از Database Inspector استفاده میکنند، در شبیهساز اندروید ۱۱ از کار میافتند
برنامههایی که از Database Inspector استفاده میکنند، ممکن است هنگام اجرا روی شبیهساز اندروید ۱۱ دچار مشکل شوند و خطایی مانند زیر در logcat ظاهر شود:
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)
برای رفع این مشکل، شبیهساز اندروید ۱۱ خود را با رفتن به Tools > SDK Manager به نسخه ۹ یا بالاتر ارتقا دهید. در تب SDK Platforms ، کادر Show Package Details را علامت بزنید و نسخه ۹ یا بالاتر شبیهساز اندروید ۱۱ را انتخاب کنید.

Studio doesn't start after upgrade
اگر استودیو بعد از ارتقا شروع به کار نکرد، مشکل ممکن است به دلیل پیکربندی نامعتبر اندروید استودیو وارد شده از نسخه قبلی اندروید استودیو یا یک افزونه ناسازگار باشد. به عنوان یک راه حل، بسته به نسخه اندروید استودیو و سیستم عامل، پوشه زیر را حذف کنید (یا برای پشتیبان گیری تغییر نام دهید) و دوباره اندروید استودیو را اجرا کنید. این کار اندروید استودیو را به حالت پیش فرض خود بازنشانی میکند و تمام افزونههای شخص ثالث حذف میشوند.
For Android Studio 4.1 and later:
ویندوز:
%APPDATA%\Google\AndroidStudio <version>
مثال:C:\Users\ your_user_name \AppData\Roaming\Google\AndroidStudio4.1macOS:
~/Library/Application Support/Google/AndroidStudio <version>
مثال:~/Library/Application Support/Google/AndroidStudio4.1لینوکس:
~/.config/Google/AndroidStudio <version>و~/.local/share/Google/AndroidStudio <version>
مثال:~/.config/Google/AndroidStudio4.1و~/.local/share/Google/AndroidStudio4.1
For Android Studio 4.0 and earlier:
ویندوز:
%HOMEPATH%\.AndroidStudio <version> \config
مثال:C:\Users\ your_user_name \.AndroidStudio3.6\configmacOS:
~/Library/Preferences/AndroidStudio <version>
Example:~/Library/Preferences/AndroidStudio3.6Linux:
~/.AndroidStudio <version> /config
Example:~/.AndroidStudio3.6/config
توجه داشته باشید که دایرکتوری پیکربندی برای نسخههای Canary و Beta اندروید استودیو به جای XY برای <version> PreviewX.Y است. برای مثال، نسخههای Canary اندروید استودیو ۴.۱ از AndroidStudioPreview4.1 استفاده میکنند، به جای دایرکتوری AndroidStudio4.1 که برای نسخههای کاندید انتشار و پایدار استفاده میشود.
مشکل کامپایل در پروژههای چند پلتفرمی کاتلین
ممکن است در کد کاتلین MPP به دلیل وجود نمادهای از دست رفته، خطاهای کامپایل رخ دهد. ارتقاء افزونه کاتلین شما به نسخه ۱.۴ باید این مشکل را حل کند.
Key mapping conflicts on Linux
On Linux, certain keyboard shortcuts conflict with default Linux keyboard shortcuts and those of popular window managers, such as KDE and GNOME. These conflicting keyboard shortcuts may not work as expected in Android Studio.
اطلاعات بیشتر در مورد این مشکل (از جمله راهحلهای احتمالی) را میتوانید در ردیاب اشکال IntelliJ بیابید.
Small UI text on ChromeOS
در ChromeOS، متن ممکن است بسیار کوچکتر از نسخههای قبلی به نظر برسد. برای حل این مشکل، موارد زیر را انجام دهید:
- پنجره تنظیمات را با کلیک روی File > Settings باز کنید.
- Navigate to Appearance & Behavior > Appearance .
- Select Use custom font .
- اندازه فونت را افزایش دهید.
- در پنجره تنظیمات ، به ویرایشگر > فونت بروید.
- اندازه فونت را افزایش دهید.
- روی تأیید کلیک کنید.
Code editing
این بخش مشکلات شناختهشدهی مربوط به ویرایشگر کد را شرح میدهد.
Frozen keyboard input - "iBus" problems on Linux
برخی تعاملات شناختهشده بین سرویس iBus در لینوکس و اندروید استودیو وجود دارد. در برخی سناریوها، IDE به ورودی صفحهکلید پاسخ نمیدهد یا شروع به وارد کردن کاراکترهای تصادفی میکند. این اشکال به دلیل عدم هماهنگی بین iBus و XLib + AWT ایجاد میشود و قبلاً به JetBrains و iBus گزارش شده است. در حال حاضر سه راه حل برای این مشکل وجود دارد:
- راه حل ۱: iBus را مجبور به قرار دادن در حالت همگام کنید. قبل از شروع اندروید استودیو، دستور زیر را در خط فرمان اجرا کنید:
$ IBUS_ENABLE_SYNC_MODE=1 ibus-daemon -xrd
- راه حل دوم: غیرفعال کردن ورودی iBus در اندروید استودیو. برای غیرفعال کردن ورودی iBus فقط برای اندروید استودیو، دستور زیر را در خط فرمان اجرا کنید:
این راه حل فقط متدهای ورودی اندروید استودیو را غیرفعال میکند، نه هیچ برنامه دیگری را که ممکن است در حال اجرا باشید. توجه داشته باشید که اگر سرویس را در حین اجرای اندروید استودیو مجدداً راهاندازی کنید (برای مثال، با اجرای$ XMODIFIERS= ./bin/studio
ibus-daemon -rd)، عملاً متدهای ورودی را برای همه برنامههای دیگر غیرفعال میکنید و همچنین ممکن است JVM اندروید استودیو را با خطای segmentation از کار بیندازید. - راه حل ۳: اتصالات میانبر را دوباره بررسی کنید تا مطمئن شوید که میانبر ورودی Next روی Control+Space تنظیم نشده باشد، زیرا این میانبر تکمیل کد در اندروید استودیو نیز هست. اوبونتو ۱۴.۰۴ (Trusty) Super+Space را میانبر پیشفرض قرار میدهد، اما تنظیمات نسخههای قبلی ممکن است هنوز وجود داشته باشند. برای بررسی اتصالات میانبر،
ibus-setupرا در خط فرمان اجرا کنید تا پنجره IBus Preferences باز شود. در زیر Keyboard Shortcuts ، روش ورودی Next را بررسی کنید. اگر روی Control+Space تنظیم شده است، آن را به Super+Space یا میانبر دیگری به دلخواه خود تغییر دهید.
Project configuration
این بخش مشکلات شناختهشدهی مربوط به پیکربندی پروژه و همگامسازی Gradle را شرح میدهد.
Gradle Sync Failed: Broken Pipe
مشکل این است که سرویس Gradle سعی دارد به جای IPv6 از IPv4 استفاده کند.
- راه حل ۱: در لینوکس، کد زیر را در
~/.profileیا~/.bash_profileخود قرار دهید:export _JAVA_OPTIONS="-Djava.net.preferIPv6Addresses=true" - Workaround 2: in Android Studio's vmoptions file , change the line
-Djava.net.preferIPv4Addresses=trueto-Djava.net.preferIPv6Addresses=trueFor more information, see the Networking IPv6 User Guide .
خطاهای «همکار احراز هویت نشده» از همگامسازی Gradle یا SDK Manager
The root cause of these errors is a missing certificate in $JAVA_HOME/jre/lib/certificates/cacerts . To resolve these errors, proceed as follows:
- اگر از پروکسی استفاده میکنید، سعی کنید مستقیماً متصل شوید. اگر اتصال مستقیم کار کرد، برای اتصال از طریق پروکسی، ممکن است لازم باشد
keytoolبرای اضافه کردن گواهی سرور پروکسی به فایل cacerts استفاده کنید. - یک JDK پشتیبانیشده و اصلاحنشده را دوباره نصب کنید. یک مشکل شناختهشده وجود دارد که کاربران اوبونتو را تحت تأثیر قرار میدهد و منجر به خالی شدن
/etc/ssl/certs/java/cacertsمیشود. برای حل این مشکل، دستور زیر را در خط فرمان اجرا کنید:sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure
Deploying
این بخش مشکلات شناختهشده مربوط به استقرار برنامه شما در یک دستگاه متصل را شرح میدهد.
[فقط سیستم عامل مک] به دلیل مشکلی در مشاهده فایل Gradle در پروژههای ذخیره شده در مسیر /System/Volumes/Data بهروزرسانیهای افزایشی اعمال نمیشوند.
مشکل Gradle شماره ۱۸۱۴۹، افزونههای Gradle اندروید نسخه ۷.۰ و بالاتر را تحت تأثیر قرار میدهد، زیرا به Gradle نسخه ۷.۰ و بالاتر نیاز دارند . از Gradle نسخه ۷.۰ به بعد، قابلیت مشاهده فایل به طور پیشفرض فعال است. اگر روی سیستم عامل مک کار میکنید و پروژه شما در مسیر /System/Volumes/Data ذخیره شده است، قابلیت مشاهده فایل Gradle به درستی تغییرات فایل را ردیابی نمیکند. این امر باعث میشود که سیستم Build هیچ تغییر فایلی را نبیند و بنابراین APK(ها) را بهروزرسانی نکند. کد استقرار افزایشی در این صورت هیچ کاری انجام نمیدهد زیرا وضعیت APK محلی مشابه وضعیت دستگاه است.
برای حل این مشکل، باید دایرکتوری پروژه خود را به دایرکتوری کاربر خود، یعنی زیر /Users/username ، منتقل کنید. سپس سیستم Build با مشاهده فایل Gradle به درستی از تغییرات فایل مطلع میشود و تغییرات تدریجی با موفقیت اعمال میشوند.
Android Emulator HAXM on macOS High Sierra
شبیهساز اندروید در macOS High Sierra (10.13) برای بهترین سازگاری و پایداری با macOS به HAXM 6.2.1+ نیاز دارد. با این حال، macOS 10.13 فرآیند پیچیدهتری برای نصب افزونههای هسته مانند HAXM دارد. شما باید به صورت دستی اجازه دهید افزونه هسته به صورت زیر نصب شود:
- ابتدا، سعی کنید آخرین نسخه HAXM را از SDK Manager نصب کنید.
- در MacOS، به تنظیمات سیستم > امنیت و حریم خصوصی بروید.
اگر هشداری مبنی بر مسدود شدن بارگیری نرمافزار سیستمی توسعهدهنده "Intel Corporation Apps" مشاهده کردید، روی Allow کلیک کنید:

برای اطلاعات بیشتر و راهحلهای جایگزین، به این صفحه وب اپل و شماره 62395878 مراجعه کنید.
اعمال تغییرات
این بخش مشکلات شناختهشدهای را شرح میدهد که مربوط به اعمال تغییرات هستند.
New app name not applied
اگر نام برنامه خود را تغییر دهید و سپس سعی کنید آن تغییر را اعمال کنید، ممکن است نام بهروز شده نمایش داده نشود. برای حل این مشکل، روی Run کلیک کنید.
to re-deploy your app and see your changes.
Issue in Android Runtime throws error
اگر از دستگاهی استفاده میکنید که اندروید ۸.۰ یا ۸.۱ را اجرا میکند، ممکن است هنگام تلاش برای اعمال انواع خاصی از تغییرات (بهخصوص اگر از کاتلین استفاده میکنید) با پیامهای "VERIFICATION_ERROR" مواجه شوید. این پیام به دلیل مشکلی در زمان اجرای اندروید ایجاد میشود که در اندروید ۹.۰ و بالاتر برطرف شده است. اگرچه این مشکل باعث میشود اعمال تغییرات با شکست مواجه شود، اما همچنان میتوانید آن را اجرا کنید.
برای مشاهده تغییرات، برنامه خود را دوباره اجرا کنید. با این حال، توصیه میکنیم دستگاه خود را به اندروید ۹.۰ یا بالاتر ارتقا دهید.
Debugging and testing
این بخش مشکلات شناختهشده مربوط به اشکالزدایی و آزمایش برنامه شما را شرح میدهد.
JUnit هنگام اجرا از اندروید استودیو، منابع از دست رفته در classpath را آزمایش میکند.
اگر پوشههای منبع خاصی در ماژولهای جاوای خود دارید، هنگام اجرای تستها از IDE، آن منابع پیدا نمیشوند. اجرای تستها با استفاده از Gradle از خط فرمان کار خواهد کرد. اجرای وظیفه check Gradle از IDE نیز کار خواهد کرد. برای جزئیات بیشتر به شماره ۶۴۸۸۷ مراجعه کنید.
این مشکل به این دلیل رخ میدهد که از IntelliJ 13 به بعد، که شما فقط باید یک پوشه به عنوان classpath داشته باشید، ایجاد میشود. سازنده IntelliJ تمام منابع را در آن پوشه ساخت کپی میکند، اما Gradle منابع را کپی نمیکند.
- راه حل ۱: به جای اجرای تست واحد، وظیفه
checkGradle را از IDE اجرا کنید. - راه حل ۲: اسکریپت ساخت خود را بهروزرسانی کنید تا منابع را به صورت دستی در پوشه ساخت کپی کنید. برای اطلاعات بیشتر به کامنت شماره ۱۳ مراجعه کنید.
Running JUnit tests may compile the code twice
هنگام ایجاد یک پروژه جدید، پیکربندی قالب JUnit ممکن است با دو مرحله "قبل از راهاندازی" ایجاد شود: ساخت و ساخت Gradle-aware. این پیکربندی سپس به تمام پیکربندیهای JUnit ایجاد شده برای اجرا اعمال میشود.
- برای رفع مشکل پروژه فعلی، روی Run > Edit Configurations کلیک کنید و پیکربندی پیشفرض JUnit را طوری تغییر دهید که فقط شامل مرحله Gradle-aware Make باشد.
- برای رفع مشکل برای همه پروژههای آینده، روی File > Close Project کلیک کنید. باید صفحه خوشامدگویی را ببینید. سپس روی Configure > Project Defaults > Run Configurations کلیک کنید و پیکربندی JUnit را طوری تغییر دهید که فقط شامل مرحله Gradle-aware Make باشد.
Some test run configurations don't work
همه پیکربندیهای اجرا که با کلیک راست روی یک روش آزمایشی در دسترس هستند، معتبر نیستند. به طور خاص، پیکربندیهای زیر معتبر نیستند:
- پیکربندیهای Gradle run (که لوگوی Gradle را به عنوان آیکون دارند) کار نمیکنند.
- پیکربندیهای اجرای JUnit (که آیکونی بدون اندروید سبز دارند) برای تستهای instrumentation اعمال نمیشوند، که نمیتوانند روی JVM محلی اجرا شوند.
اضافه کردن نقاط توقف جاوا هنگام اشکالزدایی کد بومی
در حالی که برنامه شما در یک نقطه توقف در کد بومی شما متوقف شده است، اشکالزدایهای خودکار و دوگانه ممکن است بلافاصله نقاط توقف جدید جاوا را که تنظیم کردهاید تشخیص ندهند. برای جلوگیری از این مشکل، نقاط توقف جاوا را قبل از شروع جلسه اشکالزدایی یا در حالی که برنامه در یک نقطه توقف جاوا متوقف شده است، اضافه کنید. برای اطلاعات بیشتر، به شماره 229949 مراجعه کنید.
Stepping out of the native debugger
While using the Auto or Dual debugger to debug Java and native code, if you step into a native function from your Java code (for example, the debugger pauses execution at a line in your Java code that calls a native function and you click Step Into
) و اگر میخواهید به کد جاوای خود برگردید، روی Resume Program کلیک کنید.
(instead of Step Out
or Step Over
). روند برنامه شما همچنان متوقف خواهد شد، بنابراین روی Resume Program کلیک کنید.
برای از سرگیری آن، در تب your-module -java کلیک کنید. برای اطلاعات بیشتر، به شماره ۲۲۴۳۸۵ مراجعه کنید.
Native debugger hangs while loading libraries
هنگام استفاده از اشکالزدای بومی برای اولین بار پس از ارتقا به اندروید استودیو ۴.۲ و بالاتر، ممکن است اشکالزدای بومی هنگام بارگیری کتابخانهها از دستگاه اندروید، پاسخدهی را متوقف کند. این مشکل، یک مشکل پیچیده است که حتی اگر اشکالزدا را متوقف و مجدداً راهاندازی کنید، همچنان ادامه دارد. برای رفع این مشکل، حافظه پنهان LLDB را در $USER/.lldb/module-cache/ حذف کنید.
اشکالزدای بومی با پیام «فرآیند اشکالزدا با کد خروج ۱۲۷ به پایان رسید» از کار میافتد.
این خطا در پلتفرمهای مبتنی بر لینوکس هنگام شروع اشکالزدای بومی رخ میدهد. این خطا نشان میدهد که یکی از کتابخانههای مورد نیاز اشکالزدای بومی روی سیستم محلی نصب نشده است. نام کتابخانهی مفقود شده ممکن است از قبل در فایل idea.log چاپ شده باشد. در غیر این صورت، میتوانید از یک ترمینال برای رفتن به دایرکتوری نصب اندروید استودیو استفاده کنید و خط فرمان bin/lldb/bin/LLDBFrontend --version را اجرا کنید تا متوجه شوید کدام کتابخانهها مفقود هستند. معمولاً کتابخانهی مفقود شده ncurses5 است زیرا برخی از توزیعهای اخیر لینوکس قبلاً به ncurses6 ارتقا یافتهاند.
پروفیلسازها
این بخش مشکلات شناختهشدهی Profilerها را شرح میدهد.
پروفایلر حافظه بومی: پروفایلسازی در هنگام راهاندازی برنامه در دسترس نیست
نمایهساز حافظه بومی در حال حاضر هنگام راهاندازی برنامه در دسترس نیست. این گزینه در نسخه بعدی در دسترس خواهد بود.
به عنوان یک راه حل موقت، میتوانید از ابزار مستقل خط فرمان Perfetto برای ثبت پروفایلهای راهاندازی استفاده کنید.
Timeout errors in CPU Profiler
ممکن است هنگام انتخاب پیکربندیهای Sample Java Methods یا Trace Java Methods در Android Studio CPU Profiler با خطای «ضبط ناموفق متوقف شد» مواجه شوید. این خطاها اغلب مربوط به timeout هستند، به خصوص اگر پیام خطای زیر را در فایل idea.log مشاهده کنید:
Wait for ART trace file timed out
خطاهای مربوط به زمان انقضا معمولاً روشهای ردیابیشده را بیشتر از روشهای نمونهبرداریشده و ضبطهای طولانیتر را بیشتر از ضبطهای کوتاهتر تحت تأثیر قرار میدهند. به عنوان یک راه حل موقت، ممکن است امتحان کردن ضبطهای کوتاهتر مفید باشد تا ببینید آیا خطا از بین میرود یا خیر.
اگر با مشکل تایم اوت (timeout) در Profiler مواجه شدید، لطفاً یک گزارش اشکال (bug) شامل سازنده/مدل دستگاه(های) خود و هرگونه ورودی مرتبط از idea.log و logcat ثبت کنید.
ADB exception when debugging or profiling
هنگام استفاده از Platform Tools نسخه ۲۹.۰.۳، ممکن است اشکالزدایی بومی و پروفایلرهای اندروید استودیو به درستی کار نکنند و هنگام انتخاب Help > Show Log ، ممکن است در فایل idea.log با خطای "AdbCommandRejectedException" یا "Failed to connect port" مواجه شوید. ارتقاء Platform Tools به نسخه ۲۹.۰.۴ یا بالاتر هر دو مشکل را برطرف میکند.
To upgrade the Platform Tools, do the following:
- با کلیک روی Tools > SDK Manager یا کلیک روی SDK Manager، SDK Manager را از اندروید استودیو باز کنید.
in the toolbar. - روی کادر انتخاب کنار «ابزارهای پلتفرم SDK اندروید» کلیک کنید تا علامت تیک نشان داده شود. نماد دانلود
should appear in the left column. - Click Apply or OK .
Plugin prevents Build Output window from working
استفاده از افزونهی هایلایت سادهی CMake مانع از نمایش محتوا در پنجرهی Build Output میشود. Build اجرا میشود و تب Build Output ظاهر میشود، اما هیچ خروجی چاپ نمیشود ( شماره #204791544 ).
Installation order prevents launch
نصب نسخه جدیدتر اندروید استودیو قبل از نسخه قدیمیتر ممکن است مانع از اجرای نسخه قدیمیتر شود. برای مثال، اگر ابتدا نسخه Canary اندروید استودیو را نصب کنید و سپس سعی کنید نسخه پایدار را نصب و اجرا کنید، ممکن است نسخه پایدار اجرا نشود. در مواردی مانند این، باید حافظه پنهان را پاک کنید تا نسخه پایدار (قدیمیتر) اجرا شود. در macOS، برای پاک کردن حافظه پنهان، دایرکتوری Library/ApplicationSupport/Google/AndroidStudio version_number را حذف کنید. در ویندوز، برای پاک کردن حافظه پنهان از Disk Cleanup استفاده کنید.
Espresso Test Recorder doesn't work with Compose
ضبطکننده تست اسپرسو با پروژههایی که شامل Compose هستند کار نمیکند. برای ایجاد تستهای رابط کاربری برای پروژههایی که شامل Compose هستند، به بخش «آزمایش طرحبندی Compose» مراجعه کنید.
میانبر Logcat با طرحبندیهای صفحهکلید غیرانگلیسی تداخل دارد
اگر از طرحبندی صفحهکلید غیرانگلیسی استفاده میکنید، ممکن است میانبر پیشفرض صفحهکلید Logcat با طرحبندی تداخل داشته باشد و مانع از تایپ برخی کاراکترها هنگام ویرایش متن در اندروید استودیو شود. برای حل این مشکل، نقشه کلید Logcat متناقض را حذف یا دوباره نگاشت کنید. برای ویرایش نقشههای کلید Logcat در اندروید استودیو، به اندروید استودیو > تنظیمات > نقشه کلید بروید و Logcat را در لیست نقشههای کلید جستجو کنید. برای اطلاعات بیشتر، به شماره #263475910 مراجعه کنید.
این مشکل با حذف میانبر Logcat در اندروید استودیو Electric Eel Patch 1 حل خواهد شد.
Known issues with the Android Gradle Plugin
این بخش مشکلات شناختهشدهای را که در آخرین نسخه پایدار افزونه Android Gradle وجود دارد، شرح میدهد.
همه وابستگیهای کتابخانهای با ویژگیهای پویا، بررسی خط کد (lint) نمیشوند.
هنگام اجرای lint با checkDependencies = true از یک ماژول برنامه، وابستگیهای کتابخانه با ویژگی پویا بررسی نمیشوند، مگر اینکه وابستگیهای برنامه نیز باشند ( شماره #191977888 ). به عنوان یک راه حل، میتوان وظیفه lint را روی آن کتابخانهها اجرا کرد.
امضای فایل با نام کاراکترهای بازگشت به ابتدای سطر
امضای JAR (طرح نسخه ۱) از نام فایلهای حاوی کاراکترهای بازگشت به ابتدای سطر ( شماره #۶۳۸۸۵۸۰۹ ) پشتیبانی نمیکند.
تغییر خروجیهای متغیر در زمان ساخت ممکن است کار نکند.
استفاده از API نوع Variant برای دستکاری خروجیهای نوع Variant با افزونه جدید از بین رفته است. این افزونه همچنان برای کارهای سادهای مانند تغییر نام APK در زمان ساخت، همانطور که در زیر نشان داده شده است، کار میکند:
// If you use each() to iterate through the variant objects, // you need to start using all(). That's because each() iterates // through only the objects that already exist during configuration time— // but those object don't exist at configuration time with the new model. // However, all() adapts to the new model by picking up object as they are // added during execution. android.applicationVariants.all { variant -> variant.outputs.all { outputFileName = "${variant.name}-${variant.versionName}.apk" } }
با این حال، وظایف پیچیدهتری که شامل دسترسی به اشیاء outputFile میشوند، دیگر کار نمیکنند. دلیل این امر این است که وظایف مختص به هر نوع، دیگر در مرحله پیکربندی ایجاد نمیشوند. این امر منجر به این میشود که افزونه از قبل تمام خروجیهای خود را نداند، اما این همچنین به معنای زمان پیکربندی سریعتر است.
manifestOutputFile is no longer available
متد processManifest.manifestOutputFile() دیگر در دسترس نیست و هنگام فراخوانی آن خطای زیر را دریافت میکنید:
A problem occurred configuring project ':myapp'. Could not get unknown property 'manifestOutputFile' for task ':myapp:processDebugManifest' of type com.android.build.gradle.tasks.ProcessManifest.
به جای فراخوانی manifestOutputFile() برای دریافت فایل مانیفست برای هر نوع، میتوانید processManifest.manifestOutputDirectory() را برای بازگرداندن مسیر دایرکتوری که شامل تمام مانیفستهای تولید شده است، فراخوانی کنید. سپس میتوانید یک مانیفست را پیدا کرده و منطق خود را بر روی آن اعمال کنید. نمونه زیر به صورت پویا کد نسخه را در مانیفست تغییر میدهد:
android.applicationVariants.all { variant -> variant.outputs.all { output -> output.processManifest.doLast { // Stores the path to the maifest. String manifestPath = "$manifestOutputDirectory/AndroidManifest.xml" // Stores the contents of the manifest. def manifestContent = file(manifestPath).getText() // Changes the version code in the stored text. manifestContent = manifestContent.replace('android:versionCode="1"', String.format('android:versionCode="%s"', generatedCode)) // Overwrites the manifest with the new text. file(manifestPath).write(manifestContent) } } }
مشکلات مربوط به پشتیبانی AGP 7.3.0 AIDL و Kotlin 1.7.x
استفاده از AGP 7.3.0 به همراه KAPT در Kotlin 1.7.x باعث میشود مجموعههای منبع AIDL برای انواع ساخت خاص حذف شوند. شما همچنان میتوانید از سایر مجموعههای منبع AIDL، از جمله main/ ، انواع ساخت، طعمهای محصول و ترکیبی از طعمهای محصول استفاده کنید. اگر نیاز به استفاده از مجموعههای منبع AIDL مخصوص هر نوع دارید، به استفاده از Kotlin 1.6.21 ادامه دهید.
مشکلات شناخته شده برطرف شد
این بخش مشکلات شناختهشدهای را که در نسخههای اخیر برطرف شدهاند، شرح میدهد. اگر با هر یک از این مشکلات مواجه هستید، باید اندروید استودیو را به آخرین نسخه پایدار یا پیشنمایش بهروزرسانی کنید.
Fixed in Android Studio 2021.1.1
- خروجی lint موجود نیست : وقتی وظیفه lint
UP-TO-DATEاست ( شماره #191897708 )، هیچ خروجی متن lint درstdoutچاپ نمیشود. این مشکل در AGP 7.1.0-alpha05 برطرف شده است. - مشکلات مربوط به تست واحد یک پروژه برنامه که از افزونه Hilt استفاده میکند : مسیر کلاس تست واحد شامل کلاسهای برنامه غیر ابزاربندی شده است، به این معنی که Hilt کلاسهای برنامه را برای مدیریت تزریق وابستگی هنگام اجرای تستهای واحد، ابزاربندی نمیکند ( شماره #213534628 ). در AGP 7.1.1 برطرف شد.
Fixed in Android Studio 2020.3.1
- استثنائات Lint در پروژههای کاتلین: پروژههای کاتلینی که
checkDependencies = trueقرار میدهند، ممکن است با استثنائات یا خطاهای اشارهگر تهی مواجه شوند ( شماره #158777858 ).
Fixed in Android Studio 4.2
- IDE در macOS Big Sur هنگ میکند: اندروید استودیو ۴.۱ ممکن است هنگام باز کردن یک پنجره محاورهای هنگ کند.
Fixed in Android Studio 4.1
- برای اعمال تنظیمات حافظه از نسخه قبلی IDE، آن را مجدداً راهاندازی کنید: پس از بهروزرسانی اندروید استودیو، برای اعمال هرگونه تنظیمات حافظه منتقلشده از نسخه قبلی IDE، باید اندروید استودیو را مجدداً راهاندازی کنید.
- کلاس Manifest با رشتههای مجوز سفارشی دیگر به طور پیشفرض تولید نمیشود: اگر میخواهید کلاس را تولید کنید،
android.generateManifestClass = trueقرار دهید.
Fixed in Android Studio 3.6
خطای نصب APK در LineageOS : نصب برنامه روی دستگاههایی که نسخههای خاصی از LineageOS یا CyanogenMod را اجرا میکنند، ممکن است با شکست مواجه شود و خطای
INSTALL_PARSE_FAILED_NOT_APKرا ایجاد کند.در اندروید استودیو ۳.۶ بتا ۱ و بالاتر، IDE با انجام نصب کامل برنامه هنگام استقرار برنامه در دستگاههای LineageOS یا CyanogenMod، این استثنا را مدیریت میکند، که ممکن است منجر به زمان استقرار طولانیتر شود.
Fixed in Android Studio 3.5.2
- سبک کد XML خراب : هنگام ویرایش کد XML، وقتی از نوار منو ، Code > Reformat Code را انتخاب کردید، IDE سبک کد نادرستی را اعمال کرد.
Fixed in Android Studio 3.3.1
خطاهای کمبود حافظه هنگام اسکن پروژههای مبتنی بر ++C : وقتی Gradle پروژهای را اسکن میکند که کد ++C در بیش از یک مکان در یک درایو دارد، اسکن شامل تمام دایرکتوریهای زیر اولین دایرکتوری مشترک میشود. اسکن تعداد زیادی دایرکتوری و فایل ممکن است منجر به خطاهای کمبود حافظه شود.
برای اطلاعات بیشتر در مورد این مشکل، باگ مرتبط با مشکل را مطالعه کنید.