مشکلات شناخته‌شده با «استودیو Android» و «افزایه Android Gradle»

این صفحه مشکلات شناخته‌شده «استودیو Android» و افزایه Android Gradle را ردیابی می‌کند. اگر با مشکلی مواجه شدید که در اینجا ذکر نشده است، لطفاً اشکال را گزارش کنید.

ارتقا به پیش‌نمایش: هدف هر نسخه پخش Android Studio و افزایه Android Gradle بهبود پایداری و عملکرد و افزودن ویژگی‌های جدید است. برای تجربه مزایای نسخه‌های آتی، همین حالا پیش‌نمایش Android Studio را بارگیری و نصب کنید.

مشکلات شناخته‌شده «استودیو Android»

این بخش مشکلات شناخته‌شده‌ای را که در «استودیو Android» وجود دارد شرح می‌دهد.

Android Studio Panda 3 با افزونه IntelliJ Develocity نسخه ۱.۲.۰ سازگار نیست

هنگام استفاده از افزونه Develocity IDE نسخه ۱.۲.۰، با شروع از Android Studio Panda 3 Canary 1، کنش اجرا با خطای زیر ناموفق می‌شود (مشکل شماره ۴۹۲۴۳۹۲۰۵):

Found interface com.android.tools.idea.gradle.project.build.invoker.GradleBuildInvoker$Request, but class was expected

توسعه‌دهندگان Develocity در تلاشند مشکل را برای نسخه جدید برطرف کنند.

راه‌حل: غیرفعال کردن افزونه Develocity IDE نسخه ۱.۲.۰ مشکل را حل می‌کند تا زمانی که این ناسازگاری در نسخه جدید افزونه برطرف شود.

Kotlin 2.0: Lambdas cannot be resolved in Layout Inspector

هنگام استفاده از Kotlin 2.0، لامبداها قابل‌حل نیستند و «بازرس چیدمان» نمی‌تواند طبق معمول به کد منبع لامبدا پیمایش کند.

راه‌حل: تا زمانی که این مشکل برطرف شود، گزینه کامپایلر زیر را به‌عنوان راه‌حل اضافه کنید:

kotlin {
  compilerOptions {
    freeCompilerArgs.add("-Xlambdas=class")
  }
}

اجرای پیکربندی بدون «قبل‌از راه‌اندازی» Gradle-aware Make منجر به خطای استقرار می‌شود

مشکلی در Android Studio Ladybug Feature Drop Canary 9 وجود داشت که اطلاعات پیکربندی اجرا را از پروژه‌هایی که با آن نسخه باز شده بودند حذف می‌کرد. اگر پروژه را با آن نسخه باز کرده‌اید و اجرای برنامه منجر به خطای «بار کردن مصنوعات ساخت» می‌شود، بررسی کنید که پیکربندی اجرای فعال دارای مرحله «Gradle-aware Make» در بخش «قبل‌از راه‌اندازی» باشد. برای درستی‌سنجی این موضوع، روی پیکربندی‌های اجرا/ اشکال‌زدایی > ویرایش پیکربندی‌ها کلیک کنید، روی پیکربندی اجرای فعال کلیک کنید و مطمئن شوید که مرحله «Gradle-aware Make» در بخش «قبل‌از راه‌اندازی» وجود دارد. متأسفانه Android Studio نمی‌تواند این مشکل را به‌طور خودکار برطرف کند زیرا ممکن است برخی‌از پیکربندی‌های اجرا عمداً بدون مرحله «Gradle-aware Make» راه‌اندازی شده باشند.

«اعمال تغییرات و بازراه‌اندازی فعالیت» فعالیت را در دستگاه‌ها یا شبیه‌سازهای سطح میانای برنامه‌سازی کاربردی ۳۵ بازراه‌اندازی نمی‌کند

وقتی تغییرات کد را با «اعمال تغییرات و بازراه‌اندازی فعالیت» در دستگاهی با میانای برنامه‌سازی کاربردی ۳۵ مستقر می‌کنید، برنامه بازراه‌اندازی نمی‌شود و تأثیر تغییرات را نخواهید دید. اگر برنامه را دوباره اجرا کنید، تأثیر تغییرات کد را خواهید دید. تیم ما فعالانه درحال بررسی این موضوع است.

پنجره دستیار Firebase پیام خطا نشان می‌دهد

اگر «پنجره دستیار Firebase» (ابزارها > Firebase از منو اصلی) پیام خطایی نمایش می‌دهد، حافظه‌های پنهان را نامعتبر کنید و Android Studio را بازراه‌اندازی کنید تا خطا برطرف شود.

نمی‌توان نمایی را بااستفاده از «بازرس چیدمان» جدا کرد

امکان جداسازی نما بااستفاده از بازرس چیدمان جاسازی‌شده موقتاً دردسترس نیست. درحال تلاش برای برطرف کردن این مشکل در نسخه پخش آتی هستیم.

همه گره‌های Compose بااستفاده از «بازرس چیدمان» قابل‌بازرسی نیستند

اگر متوجه شدید که هنگام استفاده از بازرس چیدمان، همه گره‌های Compose قابل‌بازرسی نیستند، احتمالاً به‌دلیل اشکالی است که در Compose نسخه 1.5.0-alpha04 برطرف شده است. اگر با این مشکل مواجه هستید، حتماً به Compose نسخه 1.5.0-alpha04 یا بالاتر ارتقا دهید.

خطا هنگام پرداز زدن «پیش‌نمایش Compose»

از Android Studio Chipmunk به بعد، اگر 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 را در پیمانه‌تان اضافه کنید.

اگر java.lang.NoClassDefFoundError: Could not initialize class androidx.customview.poolingcontainer.PoolingContainer یا java.lang.NoClassDefFoundError: androidx/customview/poolingcontainer/PoolingContainerListener را در پانل مشکلات می‌بینید، حتماً وابستگی debugImplementation را به androidx.customview:customview-poolingcontainer در مدول خود اضافه کنید.

خطا هنگام استفاده از گذرواژه‌های متفاوت برای کلید و ذخیره‌گاه کلید

از نسخه ۴.۲ به بعد، Android Studio اکنون روی JDK 11 اجرا می‌شود. این به‌روزرسانی باعث تغییر رفتار اساسی مربوط به کلیدهای امضا می‌شود.

وقتی به ساختن > تولید دسته امضاشده / APK پیمایش می‌کنید و تلاش می‌کنید امضای برنامه را برای دسته برنامه یا APK پیکربندی کنید، وارد کردن گذرواژه‌های متفاوت برای کلید و keystore ممکن است منجر به خطای زیر شود:

Key was created with errors:
Warning: Different store and Key passwords not supported for PKCS12 Key stores

برای حل این مشکل، گذرواژه یکسانی را برای کلید و keystore وارد کنید.

Android Studio پس‌از نصب نسخه ۴.۲ شروع نمی‌شود

‫Studio سعی می‌کند .vmoptions قبلی را وارد کند و آن‌ها را پاک‌سازی کند تا با زباله‌روبی که JDK 11 استفاده می‌کند کار کند. اگر این فرایند ناموفق باشد، ممکن است IDE برای برخی‌از کاربرانی که گزینه‌های سفارشی VM را در فایل .vmoptions تنظیم کرده‌اند راه‌اندازی نشود.

برای حل این مشکل، توصیه می‌کنیم گزینه‌های سفارشی را در .vmoptions (بااستفاده از نویسه «#») به‌صورت نظر درآورید. فایل .vmoptions را می‌توانید در مکان‌های زیر پیدا کنید:

Windows

C:\Users\YourUserName\AppData\[Local|Roaming]\Google\AndroidStudio4.2\studio64.exe.vmoptions

macOS

~/Library/Application Support/Google/AndroidStudio4.2/studio.vmoptions

Linux

~/.config/Google/AndroidStudio4.2/studio64.vmoptions

اگر Studio پس‌از امتحان کردن این راه‌حل همچنان شروع نمی‌شود، Studio پس‌از ارتقا شروع نمی‌شود را در زیر ببینید.

برنامه‌هایی که از «بازرس پایگاه داده» استفاده می‌کنند در شبیه‌ساز Android 11 ازکار می‌افتند

برنامه‌هایی که از «بازرس پایگاه داده» استفاده می‌کنند ممکن است هنگام اجرا در شبیه‌ساز Android 11 ازکار بیفتند و خطایی مانند خطای زیر در logcat ظاهر شود:

 Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)

برای رفع این مشکل، شبیه‌ساز Android 11 را با رفتن به ابزارها > مدیر SDK به نسخه ۹ یا بالاتر ارتقا دهید. در برگه پلاتفرم‌های SDK، چارگوش با برچسب نمایش جزئیات بسته را علامت بزنید و نسخه ۹ یا بالاتر شبیه‌ساز Android 11 را انتخاب کنید.

«استودیو» پس‌از ارتقا شروع نمی‌شود

اگر «استودیو» پس‌از ارتقا شروع نشد، ممکن است مشکل به‌دلیل پیکربندی نامعتبر «استودیو Android» باشد که از نسخه قبلی «استودیو Android» وارد شده است یا به‌دلیل افزونه ناسازگار باشد. به‌عنوان راه‌حل، بسته به نسخه Android Studio و سیستم‌عامل، دایرکتوری زیر را حذف کنید (یا برای پشتیبان‌گیری، نام آن را تغییر دهید) و Android Studio را دوباره راه‌اندازی کنید. با این کار، Android Studio به وضعیت پیش‌فرض خود بازنشانی می‌شود و همه افزایه‌های شخص ثالث برداشته می‌شود.

برای Android Studio نسخه ۴.۱ و بالاتر:

  • Windows: %APPDATA%\Google\AndroidStudio<version>
    مثال: C:\Users\your_user_name\AppData\Roaming\Google\AndroidStudio4.1

  • macOS: ~/Library/Application Support/Google/AndroidStudio<version>
    مثال: ~/Library/Application Support/Google/AndroidStudio4.1

  • Linux: ~/.config/Google/AndroidStudio<version> و ~/.local/share/Google/AndroidStudio<version>
    مثال: ~/.config/Google/AndroidStudio4.1 و ~/.local/share/Google/AndroidStudio4.1

برای Android Studio 4.0 و نسخه‌های قدیمی‌تر:

  • Windows: %HOMEPATH%\.AndroidStudio<version>\config
    مثال: C:\Users\your_user_name\.AndroidStudio3.6\config

  • macOS: ~/Library/Preferences/AndroidStudio<version>
    مثال: ~/Library/Preferences/AndroidStudio3.6

  • Linux: ~/.AndroidStudio<version>/config
    مثال: ~/.AndroidStudio3.6/config

توجه داشته باشید که دایرکتوری پیکربندی برای نسخه‌های Canary و Beta از Android Studio به‌جای X.Y برای <version>، PreviewX.Y است. برای مثال، ساخت‌های Android Studio 4.1 Canary از AndroidStudioPreview4.1 استفاده می‌کنند، به‌جای دایرکتوری AndroidStudio4.1 که برای «نامزدهای انتشار» و نسخه‌های «پایدار» استفاده می‌شود.

مشکل کامپایل در پروژه‌های چندپلاتفرمی Kotlin

ممکن است به‌دلیل نبودن نمادها، خطاهای کامپایل در کد Kotlin MPP ایجاد شود. ارتقا دادن افزونه Kotlin به نسخه ۱.۴ باید این مشکل را برطرف کند.

تداخل تخصیص دادن کلید در Linux

در Linux، برخی‌از میان‌برهای صفحه‌کلید با میان‌برهای صفحه‌کلید پیش‌فرض Linux و میان‌برهای مدیران پنجره پرطرفدار، مانند KDE و GNOME، تداخل دارند. این میان‌برهای صفحه‌کلید متناقض ممکن است در Android Studio طبق انتظار کار نکنند.

اطلاعات بیشتر درباره این مشکل (ازجمله راه‌حل‌های احتمالی) را می‌توانید در ردیاب اشکال IntelliJ پیدا کنید.

نوشتار کوچک واسط کاربر در ChromeOS

در ChromeOS، ممکن است نوشتار بسیار کوچک‌تر از نسخه‌های قبلی نشان داده شود. برای حل این مشکل، کارهای زیر را انجام دهید:

  1. با کلیک کردن روی فایل > تنظیمات، پنجره تنظیمات را باز کنید
  2. به ظاهر و رفتار > ظاهر بروید.
  3. استفاده از قلم سفارشی را انتخاب کنید.
  4. اندازه قلم را افزایش دهید.
  5. در پنجره تنظیمات، به ویرایشگر > قلم بروید.
  6. اندازه قلم را افزایش دهید.
  7. روی تأیید کلیک کنید.

ویرایش کد

این بخش مشکلات شناخته‌شده مربوط به ویرایشگر کد را شرح می‌دهد.

ورودی صفحه‌کلید ثابت - مشکلات «iBus» در Linux

برخی تعاملات شناخته‌شده بین iBus daemon در Linux و «استودیو Android» وجود دارد. در برخی سناریوها، IDE دیگر به ورودی صفحه‌کلید پاسخ نمی‌دهد یا شروع به وارد کردن نویسه‌های تصادفی می‌کند. این اشکال به‌دلیل عدم همگام‌سازی بین iBus و XLib + AWT ایجاد می‌شود و قبلاً به JetBrains و iBus گزارش شده است. درحال‌حاضر سه راهکار برای این مشکل وجود دارد:

  • راه‌حل ۱: iBus را مجبور کنید به حالت همگام‌سازی برود. قبل‌از شروع Android Studio، دستور زیر را در خط فرمان اجرا کنید:
    $ IBUS_ENABLE_SYNC_MODE=1 ibus-daemon -xrd
  • راه‌حل ۲: ورودی iBus را در «استودیو Android» غیرفعال کنید. برای غیرفعال کردن ورودی iBus فقط برای Android Studio، دستور زیر را در خط فرمان اجرا کنید:
    $ XMODIFIERS= ./bin/studio
    این راهکار فقط روش‌های ورودی را برای Android Studio غیرفعال می‌کند، نه برنامه‌های دیگری که ممکن است درحال اجرا باشند. توجه داشته باشید که اگر درحین اجرای «استودیو Android» دیمن را بازراه‌اندازی کنید (برای مثال، با اجرای ibus-daemon -rd)، روش‌های ورودی را برای همه برنامه‌های دیگر غیرفعال می‌کنید و ممکن است JVM «استودیو Android» را نیز با خطای بخش‌بندی ازکار بیندازید.
  • راه‌حل ۳: میان‌برهای مرتبط را دوباره بررسی کنید تا مطمئن شوید که میان‌بر ورودی بعدی روی Control+Space تنظیم نشده باشد، زیرا این میان‌بر برای تکمیل کد در Android Studio نیز استفاده می‌شود. Ubuntu 14.04 (Trusty) Super+Space را میان‌بر پیش‌فرض می‌کند، اما تنظیمات نسخه‌های قبلی ممکن است هنوز وجود داشته باشد. برای بررسی اتصال‌های میان‌بر، ibus-setup را در خط فرمان اجرا کنید تا پنجره «اولویت‌های IBus» باز شود. در بخش میان‌برهای صفحه‌کلید، روش ورودی بعدی را علامت بزنید. اگر روی Control+Space تنظیم شده است، آن را به Super+Space یا میان‌بر دیگری که انتخاب می‌کنید تغییر دهید.

پیکربندی پروژه

این بخش مشکلات شناخته‌شده مربوط به پیکربندی پروژه و همگام‌سازی Gradle را شرح می‌دهد.

همگام‌سازی Gradle ناموفق بود: لوله شکسته

مشکل این است که Gradle daemon سعی می‌کند به‌جای IPv6 از IPv4 استفاده کند.

  • راه‌حل ۱: در Linux، موارد زیر را در ~/.profile یا ~/.bash_profile قرار دهید:
    export _JAVA_OPTIONS="-Djava.net.preferIPv6Addresses=true"
  • راه‌حل ۲: در فایل vmoptions «استودیو Android»، خط -Djava.net.preferIPv4Addresses=true را به -Djava.net.preferIPv6Addresses=true تغییر دهید. برای اطلاعات بیشتر، به راهنمای کاربر شبکه‌سازی IPv6 مراجعه کنید.

خطاهای «peer not authenticated» (همتا اصالت‌سنجی نشده است) از همگام‌سازی Gradle یا «مدیر کیت توسعه نرم‌افزار»

علت ریشه‌ای این خطاها نبود گواهینامه در $JAVA_HOME/jre/lib/certificates/cacerts است. برای حل این خطاها، به‌صورت زیر عمل کنید:

  • اگر از پراکسی استفاده می‌کنید، سعی کنید مستقیماً متصل شوید. اگر اتصال مستقیم کار می‌کند، برای اتصال ازطریق پراکسی ممکن است لازم باشد از keytool برای افزودن گواهی سرور پراکسی به فایل cacerts استفاده کنید.
  • یک «کیت توسعه جاوا» (JDK) پشتیبانی‌شده و اصلاح‌نشده را دوباره نصب کنید. مشکل شناخته‌شده‌ای وجود دارد که بر کاربران Ubuntu تأثیر می‌گذارد و منجر به خالی شدن /etc/ssl/certs/java/cacerts می‌شود. برای حل این مشکل، دستور زیر را در خط فرمان اجرا کنید:
    sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure

استقرار

این بخش مشکلات شناخته‌شده مربوط به استقرار برنامه در دستگاه متصل‌شده را شرح می‌دهد.

[فقط Mac OS] به‌روزرسانی‌های افزایشی به‌دلیل مشکلی در نظارت فایل Gradle در پروژه‌های ذخیره‌شده در /System/Volumes/Data اعمال نمی‌شوند

مشکل Gradle‏ ۱۸۱۴۹ بر نسخه‌های ۷.۰ و بالاتر افزایه Android Gradle تأثیر می‌گذارد زیرا این نسخه‌ها به Gradle نسخه ۷.۰ و بالاتر نیاز دارند. از Gradle 7.0، نظارت بر فایل به‌طور پیش‌فرض فعال است. اگر در Mac OS کار می‌کنید و پروژه‌تان در /System/Volumes/Data ذخیره شده است، نظارت بر فایل Gradle تغییرات فایل را به‌درستی ردیابی نخواهد کرد. این کار باعث می‌شود «سیستم ساخت» هیچ‌گونه تغییر فایل را نبیند و درنتیجه فایل(های) APK را به‌روز نکند. سپس کد استقرار افزایشی هیچ کاری انجام نمی‌دهد زیرا وضعیت APK محلی با وضعیت APK در دستگاه یکسان است.

برای حل این مشکل، باید دایرکتوری پروژه‌تان را به دایرکتوری کاربرتان منتقل کنید، یعنی زیر /Users/username. سپس «سیستم ساخت» به‌درستی ازطریق نظارت بر فایل Gradle از تغییرات فایل مطلع می‌شود و تغییرات افزایشی باموفقیت اعمال خواهد شد.

‫Android Emulator HAXM در macOS High Sierra

«شبیه‌ساز Android» در macOS High Sierra (10.13) برای بهترین سازگاری و پایداری با macOS به HAXM 6.2.1+ نیاز دارد. بااین‌حال، macOS 10.13 فرایند پیچیده‌تری برای نصب افزونه‌های هسته مانند HAXM دارد. باید به‌طور دستی اجازه دهید افزونه هسته به‌صورت زیر نصب شود:

  1. ابتدا، سعی کنید جدیدترین نسخه HAXM را از مدیر SDK نصب کنید.
  2. در MacOS، به System Preferences (اولویت‌های سیستم) > Security and Privacy (امنیت و حریم خصوصی) بروید.
  3. اگر هشداری دیدید مبنی بر اینکه بار کردن نرم‌افزار سیستم از توسعه‌دهنده «Intel Corporation Apps» مسدود شده است، روی اجازه دادن کلیک کنید:

برای اطلاعات بیشتر و راه‌حل‌های جایگزین، این صفحه وب Apple و مشکل ۶۲۳۹۵۸۷۸ را ببینید.

اعمال تغییرات

این بخش مشکلات شناخته‌شده مربوط به اعمال تغییرات را شرح می‌دهد.

نام جدید برنامه اعمال نشد

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

مشکل در زمان اجرای Android باعث ایجاد خطا می‌شود

اگر از دستگاهی استفاده می‌کنید که Android نسخه ۸.۰ یا ۸.۱ را اجرا می‌کند، ممکن است هنگام تلاش برای اعمال انواع خاصی از تغییرات (به‌ویژه اگر از Kotlin استفاده می‌کنید) با پیام‌های «VERIFICATION_ERROR» مواجه شوید. این پیام به‌دلیل مشکلی در «زمان اجرای Android» است که در Android نسخه ۹.۰ و بالاتر برطرف شده است. اگرچه این مشکل باعث می‌شود «اعمال تغییرات» ناموفق باشد، همچنان می‌توانید اجرا نماد اجرا برنامه‌تان را دوباره ببینید تا تغییرات را مشاهده کنید. بااین‌حال، توصیه می‌کنیم دستگاه را به Android 9.0 یا بالاتر ارتقا دهید.

اشکال‌زدایی و آزمایش

این بخش مشکلات شناخته‌شده مربوط به اشکال‌زدایی و آزمایش برنامه‌تان را شرح می‌دهد.

آزمون‌های JUnit هنگام اجرا از «استودیو Android» منابع را در classpath ازدست می‌دهند

اگر پوشه‌های منبع خاصی در ماژول‌های Java دارید، آن منابع هنگام اجرای آزمایش‌ها از IDE پیدا نخواهند شد. اجرای آزمایش‌ها بااستفاده از Gradle از خط فرمان کار خواهد کرد. اجرای تکلیف Gradle check از IDE نیز کار خواهد کرد. برای جزئیات بیشتر، به مشکل 64887 مراجعه کنید.

این مشکل به‌دلیل IntelliJ 13 رخ می‌دهد که لازم است فقط یک پوشه به‌عنوان classpath داشته باشید. سازنده IntelliJ همه منابع را در آن پوشه ساخت کپی می‌کند، اما Gradle منابع را کپی نمی‌کند.

  • راه‌حل ۱: تکلیف Gradle check را به‌جای اجرای آزمون واحد، از IDE اجرا کنید.
  • راه حل ۲: اسکریپت ساخت را به‌روز کنید تا منابع را به‌صورت دستی در پوشه ساخت کپی کنید. برای اطلاعات بیشتر، نظر شماره ۱۳ را ببینید.

اجرای آزمایش‌های JUnit ممکن است کد را دو بار کامپایل کند

هنگام ایجاد پروژه جدید، ممکن است پیکربندی JUnit الگو با دو مرحله «قبل‌از راه‌اندازی» ایجاد شود: Make و Gradle-aware Make. سپس این پیکربندی به همه پیکربندی‌های اجرای JUnit ایجادشده منتشر می‌شود.

  • برای رفع مشکل پروژه فعلی، روی اجرا > ویرایش پیکربندی‌ها کلیک کنید و پیکربندی پیش‌فرض JUnit را تغییر دهید تا فقط شامل مرحله Make سازگار با Gradle باشد.
  • برای رفع مشکل برای همه پروژه‌های آینده، روی فایل > بستن پروژه کلیک کنید. باید صفحه خوشامدگویی را ببینید. سپس روی پیکربندی > پیش‌فرض‌های پروژه > پیکربندی‌های اجرا کلیک کنید و پیکربندی JUnit را تغییر دهید تا فقط شامل مرحله Make سازگار با Gradle باشد.

برخی‌از پیکربندی‌های اجرای آزمایشی کار نمی‌کند

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

  • پیکربندی‌های اجرای Gradle (که نماد آن‌ها نشان‌واره Gradle است) کار نمی‌کنند.
  • پیکربندی‌های اجرای JUnit (که نمادی بدون Android سبز دارند) برای آزمایش‌های ابزار دقیق اعمال نمی‌شوند، که نمی‌توانند در JVM محلی اجرا شوند.
Android Studio همچنین پیکربندی اجرای ایجادشده در بافت خاصی را به‌خاطر می‌سپارد (برای مثال، کلیک راست کردن روی کلاس یا روش خاصی)، و در آینده پیشنهاد نمی‌کند که در پیکربندی دیگری اجرا شود. برای رفع این مشکل، روی اجرا > ویرایش پیکربندی‌ها کلیک کنید و پیکربندی‌های اشتباه ایجادشده را بردارید.

افزودن نقاط گسست Java هنگام اشکال‌زدایی کد بومی

وقتی برنامه‌تان در نقطه توقفی در کد بومی‌تان موقتاً متوقف شده است، اشکال‌زداهای خودکار و دوگانه ممکن است فوراً نقاط توقف جدید Java را که تنظیم کرده‌اید تشخیص ندهند. برای جلوگیری از این مشکل، نقاط توقف Java را قبل‌از شروع جلسه اشکال‌زدایی یا زمانی که برنامه در نقطه توقف Java مکث کرده است اضافه کنید. برای اطلاعات بیشتر، به مشکل ۲۲۹۹۴۹ مراجعه کنید.

خروج از اشکال‌زدای بومی

هنگام استفاده از اشکال‌زدای خودکار یا دوگانه برای اشکال‌زدایی کد جاوا و کد بومی، اگر از کد جاوا وارد یک تابع بومی شوید (برای مثال، اشکال‌زدا اجرا را در خطی از کد جاوا که تابع بومی را فراخوانی می‌کند موقتاً متوقف می‌کند و شما روی ورود به تابع کلیک می‌کنید) و می‌خواهید به کد جاوا برگردید، روی ازسرگیری برنامه (به‌جای خروج از تابع یا عبور از تابع ) کلیک کنید. فرایند برنامه شما همچنان موقتاً متوقف خواهد بود، بنابراین روی ازسرگیری برنامه در برگه your-module-java کلیک کنید تا ازسر گرفته شود. برای اطلاعات بیشتر، مشکل ۲۲۴۳۸۵ را ببینید.

اشکال‌زدای بومی هنگام بار کردن کتابخانه‌ها متوقف می‌شود

هنگام استفاده از اشکال‌زدای بومی برای اولین‌بار پس‌از ارتقا به «استودیو Android» نسخه ۴.۲ و بالاتر، ممکن است اشکال‌زدای بومی هنگام بار کردن کتابخانه‌ها از دستگاه Android دیگر پاسخ ندهد. این مشکل، مشکلی دائمی است که حتی اگر اشکال‌زدا را متوقف و بازراه‌اندازی کنید، همچنان ادامه می‌یابد. برای برطرف کردن این مشکل، حافظه نهان LLDB را در $USER/.lldb/module-cache/ حذف کنید.

اشکال‌زدای بومی با خطای «فرایند اشکال‌زدا با کد خروج ۱۲۷ پایان یافت» ازکار می‌افتد

این خطا در پلاتفرم‌های مبتنی بر Linux هنگام شروع اشکال‌زدای بومی رخ می‌دهد. این خطا نشان می‌دهد که یکی از کتابخانه‌های موردنیاز اشکال‌زدای بومی در سیستم محلی نصب نشده است. نام کتابخانه مفقودشده ممکن است قبلاً در فایل idea.log چاپ شده باشد. اگر نه، می‌توانید از پایانه برای پیمایش به دایرکتوری نصب Android Studio استفاده کنید و خط فرمان bin/lldb/bin/LLDBFrontend --version را اجرا کنید تا ببینید کدام کتابخانه‌ها وجود ندارند. معمولاً کتابخانه مفقود ncurses5 است زیرا برخی‌از توزیع‌های اخیر Linux قبلاً به ncurses6 ارتقا یافته‌اند.

تحلیل‌گران

این بخش مشکلات شناخته‌شده با «نمایه‌سازها» را شرح می‌دهد.

تحلیل‌گر حافظه بومی: نمایه‌سازی درطول راه‌اندازی برنامه دردسترس نیست

درحال‌حاضر «تحلیل‌گر حافظه بومی» درطول راه‌اندازی برنامه دردسترس نیست. این گزینه در نسخه آتی دردسترس خواهد بود.

به‌عنوان راه‌حل جایگزین، می‌توانید از نمایه‌ساز خط فرمان مستقل Perfetto برای ضبط نمایه‌های راه‌اندازی استفاده کنید.

خطاهای مهلت در «تحلیل‌گر واحد پردازش مرکزی»

وقتی پیکربندی‌های نمونه روش‌های Java یا ردگیری روش‌های Java را انتخاب می‌کنید، ممکن است با خطاهای «ضبط متوقف نشد» در «تحلیل‌گر واحد پردازش مرکزی» Android Studio مواجه شوید. این خطاها اغلب خطاهای وقفه زمانی هستند، به‌ویژه اگر پیام خطای زیر را در فایل idea.log ببینید:

Wait for ART trace file timed out

خطاهای وقفه زمانی معمولاً بر روش‌های ردیابی‌شده بیشتر از روش‌های نمونه‌برداری‌شده و بر ضبط‌های طولانی‌تر بیشتر از ضبط‌های کوتاه‌تر تأثیر می‌گذارند. به‌عنوان راه‌حل موقت، شاید بهتر باشد قطعه‌های ضبط‌شده کوتاه‌تری را امتحان کنید تا ببینید آیا خطا برطرف می‌شود یا نه.

اگر با Profiler مشکل وقفه زمانی دارید، لطفاً اشکالی را ثبت کنید که شامل ساخت/مدل دستگاه(های) شما و هر ورودی مرتبط از idea.log و logcat باشد.

استثنای ADB هنگام اشکال‌زدایی یا نمایه‌سازی

هنگام استفاده از Platform Tools 29.0.3، اشکال‌زدایی بومی و Android Studio Profilers ممکن است به‌درستی کار نکنند و ممکن است «AdbCommandRejectedException» یا «Failed to connect port» را در فایل idea.log هنگام انتخاب راهنما > نمایش گزارش ببینید. ارتقا دادن «ابزارهای پلاتفرم» به نسخه ۲۹.۰.۴ یا بالاتر هر دو مشکل را برطرف می‌کند.

برای ارتقا دادن Platform Tools، کارهای زیر را انجام دهید:

  1. با کلیک کردن روی ابزارها > مدیر SDK یا کلیک کردن روی مدیر SDK در نوارابزار، «مدیر SDK» را از Android Studio باز کنید.
  2. روی چارگوش انتخاب کنار Android SDK Platform-Tools کلیک کنید تا علامت تیک نشان داده شود. نماد بارگیری باید در ستون سمت راست نشان داده شود.
  3. روی اعمال یا تأیید کلیک کنید.

افزونه مانع از کار کردن پنجره «خروجی ساخت» می‌شود

استفاده از افزونه CMake simple highlighter مانع از نمایش محتوا در پنجره Build Output می‌شود. ساخت اجرا می‌شود و برگه «برونداد ساخت» ظاهر می‌شود، اما هیچ بروندادی چاپ نمی‌شود (مشکل شماره ۲۰۴۷۹۱۵۴۴).

ترتیب نصب مانع راه‌اندازی می‌شود

نصب نسخه جدیدتر Android Studio قبل‌از نسخه قدیمی‌تر ممکن است مانع از راه‌اندازی نسخه قدیمی‌تر شود. برای مثال، اگر ابتدا نسخه canary از Android Studio را نصب کنید و سپس بخواهید نسخه پایدار را نصب و راه‌اندازی کنید، ممکن است نسخه پایدار راه‌اندازی نشود. در چنین مواردی، باید حافظه نهان را پاک کنید تا نسخه پایدار (قدیمی‌تر) راه‌اندازی شود. در macOS، برای پاک کردن حافظه نهان، دایرکتوری Library/ApplicationSupport/Google/AndroidStudioversion_number را حذف کنید. در Windows، برای پاک کردن حافظه نهان از پاک‌سازی دیسک استفاده کنید.

«ضبط‌کننده آزمایش اسپرسو» با Compose کار نمی‌کند

Espresso Test Recorder با پروژه‌هایی که شامل Compose هستند کار نمی‌کند. برای ایجاد آزمایش‌های میانای کاربر برای پروژه‌هایی که شامل Compose هستند، به آزمایش کردن چیدمان Compose مراجعه کنید.

میان‌بر Logcat با طرح‌بندی‌های صفحه‌کلید غیرانگلیسی تداخل دارد

اگر از چیدمان صفحه‌کلید غیرانگلیسی استفاده می‌کنید، میان‌بر صفحه‌کلید Logcat پیش‌فرض ممکن است با چیدمان تداخل داشته باشد و مانع از تایپ کردن برخی نویسه‌ها هنگام ویرایش نوشتار در Android Studio شود. برای حل این مشکل، نگاشت کلید Logcat متناقض را حذف یا مجدداً نگاشت کنید. برای ویرایش کردن نگاشت‌های کلید Logcat در «استودیو Android»، به استودیو Android > تنظیمات > نگاشت کلید بروید و Logcat را در فهرست نگاشت‌های کلید جستجو کنید. برای اطلاعات بیشتر، به مشکل شماره ۲۶۳۴۷۵۹۱۰ مراجعه کنید.

این مشکل با برداشتن میان‌بر Logcat در Android Studio Electric Eel Patch 1 برطرف خواهد شد.

مشکلات شناخته‌شده با افزایه Android Gradle

این بخش مشکلات شناخته‌شده‌ای را که در جدیدترین نسخه پایدار افزایه Android Gradle وجود دارد شرح می‌دهد.

همه وابستگی‌های کتابخانه ویژگی پویا ازنظر خطایابی بررسی نمی‌شوند

هنگام اجرای lint با checkDependencies = true از یک ماژول برنامه، وابستگی‌های کتابخانه dynamic-feature بررسی نمی‌شوند مگر اینکه وابستگی‌های برنامه نیز باشند (مشکل شماره ۱۹۱۹۷۷۸۸۸). به‌عنوان راه‌حل، می‌توان تکلیف lint را در آن کتابخانه‌ها اجرا کرد.

امضای فایل نام‌گذاری‌شده با نویسه‌های بازگشت نورد

امضای JAR (طرح v1) از نام‌های فایل حاوی نویسه‌های بازگشت نورد پشتیبانی نمی‌کند (مشکل شماره ۶۳۸۸۵۸۰۹).

اصلاح بروندادهای گونه در زمان ساخت ممکن است کار نکند

استفاده از Variant API برای دستکاری خروجی‌های متغیر با افزونه جدید خراب شده است. این روش همچنان برای کارهای ساده، مانند تغییر نام 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 دیگر دردسترس نیست

روش 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 ادامه دهید.

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

این بخش مشکلات شناخته‌شده‌ای را که در نسخه پخش اخیر برطرف شده است شرح می‌دهد. اگر با هریک از این مشکلات مواجه هستید، باید Android Studio را به جدیدترین نسخه پایدار یا پیش‌نمایش به‌روز کنید.

در «استودیو Android» نسخه Rabbit 1 Canary 5 برطرف شد

  • اجرای موازی همگام‌سازی Gradle: در Android Studio Quail 1، ویژگی org.gradle.parallel=true در gradle.properties دیگر واکشی مدل موازی را درطول همگام‌سازی Gradle هنگام استفاده از Gradle نسخه ۹.۴ یا بالاتر فعال نمی‌کند. این امر منجر به پس‌رفت زمان همگام‌سازی برای پروژه‌های بزرگ شد. ویژگی org.gradle.tooling.parallel که به‌تازگی معرفی شده است واکشی مدل موازی را روشن می‌کند، اما نه برای سازندگان مدل IDEA. این محدودیت برداشته شده است.

در «استودیو Android» نسخه ۲۰۲۱.۱.۱ برطرف شد

  • خروجی lint وجود ندارد: وقتی تکلیف lint UP-TO-DATE است، هیچ خروجی نوشتاری lint در stdout چاپ نمی‌شود (مشکل شماره ۱۹۱۸۹۷۷۰۸). در AGP 7.1.0-alpha05 برطرف شد.
  • مشکلات مربوط به آزمایش واحد پروژه برنامه‌ای که از افزونه Hilt استفاده می‌کند: مسیر کلاس آزمایش واحد حاوی کلاس‌های برنامه غیرابزاری است، یعنی Hilt کلاس‌های برنامه را برای مدیریت تزریق وابستگی هنگام اجرای آزمایش‌های واحد ابزاری نمی‌کند (مشکل شماره ۲۱۳۵۳۴۶۲۸). در AGP 7.1.1 برطرف شد.

در «استودیو Android» نسخه ۲۰۲۰.۳.۱ برطرف شد

  • استثناهای Lint در پروژه‌های Kotlin: پروژه‌های Kotlin که checkDependencies = true را تنظیم می‌کنند ممکن است با استثناهای اشاره‌گر تهی یا خطاها مواجه شوند (مشکل شماره ۱۵۸۷۷۷۸۵۸).

در Android Studio 4.2 برطرف شده است

  • IDE در macOS Big Sur ثابت می‌ماند: ممکن است Android Studio 4.1 هنگام باز کردن کادر گفتگو ثابت بماند.

در «استودیو Android» نسخه ۴.۱ برطرف شده است

  • بازراه‌اندازی برای اعمال تنظیمات حافظه از نسخه قبلی IDE: پس‌از به‌روزرسانی Android Studio، باید Android Studio را بازراه‌اندازی کنید تا هرگونه تنظیمات حافظه منتقل‌شده از نسخه قبلی IDE اعمال شود.
  • کلاس مانیفست با رشته‌های اجازه سفارشی دیگر به‌طور پیش‌فرض تولید نمی‌شود: اگر می‌خواهید کلاس را تولید کنید، android.generateManifestClass = true را تنظیم کنید.

در «استودیو Android» نسخه ۳.۶ برطرف شده است

  • خطای نصب APK در LineageOS: استقرار برنامه‌تان در دستگاه‌هایی که نسخه‌های خاصی از LineageOS یا CyanogenMod را اجرا می‌کنند ممکن است ناموفق باشد و استثنای INSTALL_PARSE_FAILED_NOT_APK را ایجاد کند.

    در Android Studio 3.6 Beta 1 و بالاتر، IDE این استثنا را با انجام نصب کامل برنامه هنگام استقرار برنامه در دستگاه‌های LineageOS یا CyanogenMod مدیریت می‌کند که ممکن است منجر به طولانی‌تر شدن زمان استقرار شود.

در «استودیو Android» نسخه ۳.۵.۲ برطرف شده است

  • سبک کد XML خراب: هنگام ویرایش کد XML، وقتی کد > قالب‌بندی مجدد کد را از نوار منو انتخاب کردید، IDE سبک کد نادرستی را اعمال کرد.

در «استودیو Android» نسخه ۳.۳.۱ برطرف شد

  • خطاهای کمبود حافظه هنگام اسکن پروژه‌های مبتنی بر C++: وقتی Gradle پروژه‌ای را اسکن می‌کند که کد C++ در بیش از یک مکان در همان درایو دارد، اسکن شامل همه دایرکتوری‌های زیر اولین دایرکتوری مشترک می‌شود. اسکن کردن تعداد زیادی دایرکتوری و فایل ممکن است منجر به خطای کمبود حافظه شود.

    برای اطلاعات بیشتر درباره این مشکل، اشکال مربوط به این مشکل را بخوانید.