مشکلات شناخته شده Android Studio و Android Gradle Plugin

این صفحه مشکلات شناخته شده Android Studio Ladybug و Android Gradle پلاگین 8.7.0 را ردیابی می کند. اگر مشکلی را تجربه کردید که قبلاً در اینجا ذکر نشده است، لطفاً یک اشکال را گزارش کنید .

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

مشکلات شناخته شده با Android Studio

این بخش مشکلات شناخته شده ای را که در آخرین نسخه پایدار Android Studio وجود دارد، توضیح می دهد.

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

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

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

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

نمی توان یک نما را با استفاده از Layout Inspector ایزوله کرد

امکان جداسازی یک نما با استفاده از بازرس طرح بندی تعبیه شده به طور موقت در دسترس نیست. ما در حال کار بر روی رفع این مشکل در نسخه بعدی هستیم.

گره های نوشتن همه با استفاده از Layout Inspector قابل بازرسی نیستند

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

خطا هنگام ارائه پیش‌نمایش نوشتن

با شروع با 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 در ماژول شما.

خطا هنگام استفاده از رمزهای عبور مختلف برای key و keystore

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

وقتی به Build > Generate Signed Bundle / APK پیمایش می‌کنید و سعی می‌کنید امضای برنامه را برای یک بسته برنامه یا یک APK پیکربندی کنید، وارد کردن رمزهای عبور مختلف برای کلید و فروشگاه کلید ممکن است منجر به خطای زیر شود:

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

برای حل این مشکل، رمز عبور یکسانی را برای key و keystore وارد کنید.

اندروید استودیو بعد از نصب نسخه 4.2 راه اندازی نمی شود

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

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

ویندوز

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

macOS

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

لینوکس

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

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

برنامه هایی که از Database Inspector استفاده می کنند در شبیه ساز Android 11 خراب می شوند

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

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

برای رفع این مشکل، شبیه ساز Android 11 خود را با رفتن به Tools > SDK Manager به نسخه 9 یا بالاتر ارتقا دهید. در برگه SDK Platforms ، کادر با عنوان Show Package Details را علامت بزنید و نسخه 9 یا بالاتر شبیه ساز Android 11 را انتخاب کنید.

استودیو بعد از ارتقا شروع نمی شود

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

برای اندروید استودیو 4.1 و بالاتر:

  • ویندوز: %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

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

برای Android Studio 4.0 و نسخه های قبلی:

  • ویندوز: %HOMEPATH%\.AndroidStudio <version> \config
    مثال: C:\Users\ your_user_name \.AndroidStudio3.6\config

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

  • لینوکس: ~/.AndroidStudio <version> /config
    مثال: ~/.AndroidStudio3.6/config

توجه داشته باشید که دایرکتوری پیکربندی نسخه‌های Canary و بتا Android Studio به جای XY برای <version> PreviewX.Y است. به عنوان مثال، نسخه‌های Android Studio 4.1 Canary از AndroidStudioPreview4.1 به جای فهرست راهنمای AndroidStudio4.1 که برای نسخه‌های Release Candidates و Stable استفاده می‌شود، استفاده می‌کنند.

موضوع تدوین در پروژه های چند پلتفرمی Kotlin

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

درگیری های نقشه برداری کلید در لینوکس

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

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

متن UI کوچک در ChromeOS

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

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

ویرایش کد

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

ورودی صفحه کلید منجمد - مشکلات "iBus" در لینوکس

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

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

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

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

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

مسئله این است که Daemon Gradle سعی دارد از IPv4 به جای IPv6 استفاده کند.

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

خطاهای «همتا تأیید نشده» از Gradle sync یا SDK Manager

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

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

استقرار

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

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

شماره 18149 Gradle بر پلاگین Android Gradle نسخه 7.0 و بالاتر تأثیر می گذارد زیرا به Gradle نسخه 7.0 و بالاتر نیاز دارند. با شروع در Gradle 7.0، تماشای فایل به طور پیش فرض فعال است. اگر روی سیستم عامل مک کار می کنید و پروژه شما در /System/Volumes/Data ذخیره شده است، تماشای فایل Gradle به درستی تغییرات فایل را ردیابی نمی کند. این باعث می شود که Build System هیچ تغییری در فایل مشاهده نکند و بنابراین APK(های) را به روز نمی کند. سپس کد استقرار افزایشی کاری انجام نمی دهد زیرا وضعیت APK محلی مانند دستگاه است.

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

شبیه ساز اندروید HAXM در macOS High Sierra

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

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

برای اطلاعات بیشتر و راه‌حل‌ها، به این صفحه وب اپل و شماره 62395878 مراجعه کنید.

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

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

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

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

مشکل در Android Runtime خطا می اندازد

اگر از دستگاهی استفاده می‌کنید که اندروید 8.0 یا 8.1 را اجرا می‌کند، ممکن است هنگام تلاش برای اعمال انواع خاصی از تغییرات با پیام‌های «VERIFICATION_ERROR» مواجه شوید (مخصوصاً اگر از Kotlin استفاده می‌کنید). این پیام به دلیل مشکل در زمان اجرا اندروید است که در اندروید 9.0 و بالاتر برطرف شده است. اگرچه این مشکل باعث می شود Apply Changes با شکست مواجه شود، اما همچنان می توانید اجرا کنید نماد اجرا دوباره برنامه خود را مشاهده کنید تا تغییرات خود را ببینید. با این حال، توصیه می کنیم دستگاه را به اندروید 9.0 یا بالاتر ارتقا دهید.

اشکال زدایی و تست

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

JUnit منابع از دست رفته را در classpath هنگام اجرا از Android Studio آزمایش می کند

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

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

  • راه حل 1: به جای اجرای یک تست واحد، وظیفه check Gradle را از IDE اجرا کنید.
  • راه حل 2: اسکریپت ساخت خود را به روز کنید تا منابع را به صورت دستی در پوشه ساخت کپی کنید. برای اطلاعات بیشتر به نظر شماره 13 مراجعه کنید.

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

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

  • برای رفع مشکل پروژه فعلی، روی Run > Edit Configurations کلیک کنید و پیکربندی پیش‌فرض JUnit را طوری تغییر دهید که فقط شامل مرحله Gradle-aware Make باشد.
  • برای رفع مشکل برای همه پروژه‌های آینده، روی File > Close Project کلیک کنید. باید صفحه خوشامدگویی را ببینید. سپس روی Configure > Project Defaults > Run Configurations کلیک کنید و پیکربندی JUnit را طوری تغییر دهید که فقط شامل مرحله Gradle-aware Make باشد.

برخی از تنظیمات اجرای آزمایشی کار نمی کنند

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

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

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

در حالی که برنامه شما در یک نقطه شکست در کد اصلی شما متوقف می شود، اشکال زدای خودکار و دوگانه ممکن است فوراً نقاط شکست جاوای جدیدی را که تنظیم کرده اید تشخیص ندهند. برای جلوگیری از این مشکل، قبل از شروع جلسه اشکال زدایی یا زمانی که برنامه در نقطه شکست جاوا متوقف شده است، نقاط شکست جاوا را اضافه کنید. برای اطلاعات بیشتر به شماره 229949 مراجعه کنید.

خارج شدن از دیباگر بومی

در حین استفاده از دیباگر خودکار یا دوگانه برای اشکال زدایی جاوا و کد بومی، اگر از کد جاوا خود وارد یک تابع بومی شوید (به عنوان مثال، دیباگر اجرا را در خطی در کد جاوا که تابع بومی را فراخوانی می کند متوقف می کند و روی Step Into کلیک می کنید. ) و می خواهید به کد جاوا خود بازگردید، روی Resume Program کلیک کنید (به جای قدم بیرون یا Step Over). روند برنامه شما همچنان متوقف خواهد شد، بنابراین روی Resume Program کلیک کنید در تب your-module -java برای از سرگیری آن. برای اطلاعات بیشتر به شماره 224385 مراجعه کنید.

هنگام بارگیری کتابخانه ها، دیباگر بومی معلق می ماند

در حالی که برای اولین بار پس از ارتقاء به Android Studio 4.2 و بالاتر از دیباگر بومی استفاده می‌کنید، ممکن است هنگام بارگیری کتابخانه‌ها از دستگاه Android، اشکال‌زدای بومی دیگر پاسخ ندهد. این مشکل یک مشکل چسبنده است که حتی اگر دیباگر را متوقف کرده و مجدداً راه اندازی کنید، همچنان رخ می دهد. برای رفع این مشکل، حافظه پنهان LLDB را در $USER/.lldb/module-cache/ حذف کنید.

اشکال‌زدای بومی با «فرایند اشکال‌زدا با کد خروج 127 به پایان رسید» خراب می‌شود.

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

پروفایلرها

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

نمایه کننده حافظه بومی: نمایه سازی در حین راه اندازی برنامه در دسترس نیست

نمایه Native Memory در حال حاضر هنگام راه‌اندازی برنامه در دسترس نیست. این گزینه در نسخه آینده در دسترس خواهد بود.

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

خطاهای مهلت زمانی در CPU Profiler

هنگام انتخاب پیکربندی‌های Sample Java Methods یا Trace Java Methods ، ممکن است با خطاهای "ضبط متوقف نشد" در نمایه CPU Android Studio مواجه شوید. اینها اغلب خطاهای مهلت زمانی هستند، به خصوص اگر پیام خطای زیر را در فایل idea.log مشاهده کنید:

Wait for ART trace file timed out

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

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

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

هنگام استفاده از Platform Tools 29.0.3، اشکال زدایی بومی و نمایه های اندروید استودیو ممکن است به درستی کار نکنند و ممکن است با انتخاب Help > Show Log، "AdbCommandRejectedException" یا "Failed to connect port" را در فایل idea.log مشاهده کنید. ارتقاء ابزارهای پلتفرم به 29.0.4 یا بالاتر هر دو مشکل را برطرف می کند.

برای ارتقاء ابزارهای پلتفرم، موارد زیر را انجام دهید:

  1. با کلیک روی Tools > SDK Manager یا روی SDK Manager، مدیر SDK را از Android Studio باز کنید در نوار ابزار
  2. روی کادر تأیید کنار Android SDK Platform-Tools کلیک کنید تا علامت بررسی نشان داده شود. یک نماد دانلود باید در ستون سمت چپ ظاهر شود.
  3. روی Apply یا OK کلیک کنید.

پلاگین از کار کردن پنجره Build Output جلوگیری می کند

استفاده از پلاگین هایلایت ساده CMake از نمایش محتوا در پنجره Build Output جلوگیری می کند. ساخت اجرا می شود و برگه Build Output ظاهر می شود، اما هیچ خروجی چاپ نشده است ( شماره 204791544 ).

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

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

ضبط تست اسپرسو با Compose کار نمی کند

ضبط کننده تست اسپرسو با پروژه هایی که شامل Compose هستند کار نمی کند. برای ایجاد تست‌های رابط کاربری برای پروژه‌هایی که شامل Compose هستند، به تست طرح‌بندی نوشتن خود مراجعه کنید.

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

اگر از طرح‌بندی صفحه‌کلید غیرانگلیسی استفاده می‌کنید، ممکن است میانبر پیش‌فرض صفحه‌کلید Logcat با طرح‌بندی تضاد داشته باشد و شما را از تایپ نویسه‌های خاصی هنگام ویرایش متن در Android Studio جلوگیری کند. برای حل این مشکل، نقشه کلید Logcat متضاد را حذف یا دوباره نقشه برداری کنید. برای ویرایش نقشه های کلید Logcat در اندروید استودیو، به Android Studio > Settings > Keymap رفته و Logcat را در لیست keymaps جستجو کنید. برای اطلاعات بیشتر، شماره 263475910 را ببینید.

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

مشکلات شناخته شده با پلاگین Android Gradle

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

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

هنگام اجرای lint با checkDependencies = true از یک ماژول برنامه، وابستگی های کتابخانه با ویژگی های پویا بررسی نمی شوند مگر اینکه وابستگی های برنامه نیز باشند ( مسئله #191977888 ). به عنوان یک راه حل، وظیفه lint را می توان در آن کتابخانه ها اجرا کرد.

امضای فایل با نام نویسه های بازگشت کالسکه

امضای JAR (طرح v1) از نام فایل‌های حاوی نویسه‌های برگشتی پشتیبانی نمی‌کند ( مساله شماره 63885809 ).

تغییر خروجی های مختلف در زمان ساخت ممکن است کارساز نباشد

استفاده از 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 Studio 2021.1.1 رفع شد

  • خروجی پرز از دست رفته : زمانی که کار پرز UP-TO-DATE باشد، هیچ خروجی متنی چاپ شده در stdout وجود ندارد ( شماره 191897708 ). در AGP 7.1.0-alpha05 ثابت شد.
  • مشکلات مربوط به آزمایش واحد پروژه برنامه ای که از افزونه Hilt استفاده می کند : مسیر کلاس تست واحد شامل کلاس های برنامه غیر ابزاری است، به این معنی که Hilt کلاس های برنامه را برای مدیریت تزریق وابستگی در هنگام اجرای آزمایش های واحد ابزار نمی کند ( مساله شماره 213534628 ). در AGP 7.1.1 ثابت شده است.

در Android Studio 2020.3.1 رفع شد

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

در اندروید استودیو 4.2 رفع شد

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

در اندروید استودیو 4.1 رفع شد

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

در اندروید استودیو 3.6 رفع شد

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

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

در اندروید استودیو 3.5.2 رفع شد

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

در اندروید استودیو 3.3.1 رفع شد

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

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

،

این صفحه مشکلات شناخته شده Android Studio Ladybug و Android Gradle پلاگین 8.7.0 را ردیابی می کند. اگر مشکلی را تجربه کردید که قبلاً در اینجا ذکر نشده است، لطفاً یک اشکال را گزارش کنید .

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

مشکلات شناخته شده با Android Studio

این بخش مشکلات شناخته شده ای را که در آخرین نسخه پایدار Android Studio وجود دارد، توضیح می دهد.

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

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

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

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

نمی توان یک نما را با استفاده از Layout Inspector ایزوله کرد

امکان جداسازی یک نما با استفاده از بازرس طرح بندی تعبیه شده به طور موقت در دسترس نیست. ما در حال کار بر روی رفع این مشکل در نسخه بعدی هستیم.

گره های نوشتن همه با استفاده از Layout Inspector قابل بازرسی نیستند

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

خطا هنگام ارائه پیش‌نمایش نوشتن

با شروع با 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 در ماژول شما.

خطا هنگام استفاده از رمزهای عبور مختلف برای key و keystore

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

وقتی به Build > Generate Signed Bundle / APK پیمایش می‌کنید و سعی می‌کنید امضای برنامه را برای یک بسته برنامه یا یک APK پیکربندی کنید، وارد کردن رمزهای عبور مختلف برای کلید و فروشگاه کلید ممکن است منجر به خطای زیر شود:

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

برای حل این مشکل، رمز عبور یکسانی را برای key و keystore وارد کنید.

اندروید استودیو بعد از نصب نسخه 4.2 راه اندازی نمی شود

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

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

ویندوز

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

macOS

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

لینوکس

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

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

برنامه هایی که از Database Inspector استفاده می کنند در شبیه ساز Android 11 خراب می شوند

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

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

برای رفع این مشکل، شبیه ساز Android 11 خود را با رفتن به Tools > SDK Manager به نسخه 9 یا بالاتر ارتقا دهید. در برگه SDK Platforms ، کادر با عنوان Show Package Details را علامت بزنید و نسخه 9 یا بالاتر شبیه ساز Android 11 را انتخاب کنید.

استودیو بعد از ارتقا شروع نمی شود

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

برای اندروید استودیو 4.1 و بالاتر:

  • ویندوز: %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

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

برای Android Studio 4.0 و نسخه های قبلی:

  • ویندوز: %HOMEPATH%\.AndroidStudio <version> \config
    مثال: C:\Users\ your_user_name \.AndroidStudio3.6\config

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

  • لینوکس: ~/.AndroidStudio <version> /config
    مثال: ~/.AndroidStudio3.6/config

توجه داشته باشید که دایرکتوری پیکربندی نسخه‌های Canary و بتا Android Studio به جای XY برای <version> PreviewX.Y است. به عنوان مثال، نسخه‌های Android Studio 4.1 Canary از AndroidStudioPreview4.1 به جای فهرست راهنمای AndroidStudio4.1 که برای نسخه‌های Release Candidates و Stable استفاده می‌شود، استفاده می‌کنند.

موضوع تدوین در پروژه های چند پلتفرمی Kotlin

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

درگیری های نقشه برداری کلید در لینوکس

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

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

متن UI کوچک در ChromeOS

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

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

ویرایش کد

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

ورودی صفحه کلید منجمد - مشکلات "iBus" در لینوکس

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

  • راه حل 1: iBus را به حالت همزمان وادار کنید. قبل از شروع Android Studio ، موارد زیر را در خط فرمان اجرا کنید:
    $ IBUS_ENABLE_SYNC_MODE=1 ibus-daemon -xrd
  • راه حل 2: ورودی IBUS را در Android Studio غیرفعال کنید. برای غیرفعال کردن ورودی IBUS فقط برای Android Studio ، موارد زیر را در خط فرمان اجرا کنید:
    $ XMODIFIERS= ./bin/studio.sh
    این راه حل فقط روشهای ورودی را برای اندروید استودیو غیرفعال می کند ، نه برنامه های دیگری که ممکن است در آن اجرا کنید. توجه داشته باشید که اگر Daemon را دوباره راه اندازی کنید در حالی که Android Studio در حال اجرا است (به عنوان مثال ، با اجرای ibus-daemon -rd ) ، روش های ورودی را برای سایر برنامه های دیگر غیرفعال می کنید و همچنین ممکن است JVM Android Studio را با یک تقصیر تقسیم بندی خراب کنید.
  • راه حل 3: اتصال میانبر را دو بار بررسی کنید تا مطمئن شوید میانبر ورودی بعدی برای کنترل+فضا تنظیم نشده است ، زیرا این همچنین میانبر تکمیل کد در استودیوی اندرویدی است. Ubuntu 14.04 (قابل اعتماد) Super+Space را میانبر پیش فرض می کند ، اما تنظیمات نسخه های قبلی ممکن است هنوز هم در اطراف باشد. برای بررسی اتصالات میانبر خود ، ibus-setup روی خط فرمان اجرا کنید تا پنجره IBUS Preferences را باز کنید. در میان میانبرهای صفحه کلید ، روش ورودی بعدی را بررسی کنید. اگر تنظیم شده است تا+فضا را کنترل کند ، آن را به Super+Space یا میانبر دیگری از انتخاب خود تغییر دهید.

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

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

همگام سازی Gradle شکست خورد: لوله شکسته

مسئله این است که Daemon Gradle در تلاش است به جای IPv6 از IPv4 استفاده کند.

  • راه حل 1: در لینوکس ، موارد زیر را در ~/.profile یا ~/.bash_profile خود قرار دهید:
    export _JAVA_OPTIONS="-Djava.net.preferIPv6Addresses=true"
  • راه حل 2: در پرونده vMoptions Android Studio ، خط -Djava.net.preferIPv4Addresses=true to -Djava.net.preferIPv6Addresses=true برای اطلاعات بیشتر ، به راهنمای کاربر شبکه IPv6 مراجعه کنید.

خطاهای "همکار تأیید نشده" از Gradle Sync یا SDK Manager

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

  • اگر پشت یک پروکسی هستید ، سعی کنید مستقیماً به آن متصل شوید. اگر اتصال مستقیم کار کند ، برای اتصال از طریق پروکسی ممکن است لازم باشد keytool استفاده کنید تا گواهی سرور پروکسی را به پرونده CACERTS اضافه کنید.
  • مجدداً یک JDK پشتیبانی شده و اصلاح نشده را دوباره نصب کنید. یک مسئله شناخته شده بر کاربران اوبونتو وجود دارد ، که منجر به یک خالی /etc/ssl/certs/java/cacerts می شود. برای کار در این زمینه ، موارد زیر را در خط فرمان اجرا کنید:
    sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure

استقرار

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

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

Gradle Issue 18149 بر نسخه های افزونه Android Gradle 7.0 و بالاتر تأثیر می گذارد زیرا آنها به نسخه 7.0 و بالاتر به Gradle نیاز دارند . با شروع از Gradle 7.0 ، تماشای پرونده به طور پیش فرض فعال می شود. اگر در حال کار بر روی سیستم عامل MAC هستید و پروژه شما تحت /System/Volumes/Data ذخیره می شود ، تماشای فایل Gradle به درستی تغییرات پرونده را ردیابی نمی کند. این باعث می شود سیستم ساخت هیچ گونه تغییر پرونده را مشاهده نکند و بنابراین APK (های) را به روز نمی کند. سپس کد استقرار افزایشی هیچ کاری نخواهد کرد زیرا حالت APK محلی همان دستگاه است.

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

شبیه ساز اندرویدی HAXM در MacOS High Sierra

شبیه ساز اندرویدی در MacOS High Sierra (10.13) برای بهترین سازگاری و ثبات با MACOS به HAXM 6.2.1+ نیاز دارد. با این حال ، MACOS 10.13 یک فرآیند بیشتر برای نصب پسوندهای هسته مانند HAXM دارد. شما باید به صورت دستی اجازه دهید که پسوند هسته خود به شرح زیر نصب شود:

  1. ابتدا سعی کنید آخرین نسخه HAXM را از مدیر SDK نصب کنید.
  2. در MACOS ، به ترجیحات سیستم> امنیت و حریم خصوصی بروید.
  3. اگر هشدار می دهید که نرم افزار سیستم از توسعه دهنده "برنامه های شرکت Intel" از بارگیری مسدود شده است ، روی اجازه کلیک کنید:

برای اطلاعات بیشتر و راه حل ها ، به این صفحه وب اپل مراجعه کرده و شماره 62395878 را شماره گذاری کنید .

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

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

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

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

در خطای پرتاب زمان اجرا اندرویدی مسئله وجود دارد

اگر از دستگاهی استفاده می کنید که Android 8.0 یا 8.1 را اجرا می کند ، ممکن است هنگام تلاش برای اعمال انواع خاصی از تغییرات (به خصوص اگر از Kotlin استفاده می کنید) با پیام های "Verification_error" روبرو شوید. این پیام ناشی از مشکلی در زمان اجرا Android است که در Android 9.0 و بالاتر ثابت است. اگرچه این مسئله باعث ایجاد تغییرات در شکست می شود ، اما هنوز هم می توانید اجرا کنید نماد اجرا برنامه شما دوباره برای دیدن تغییرات شما. با این حال ، ما توصیه می کنیم دستگاه را به Android 9.0 یا بیشتر ارتقا دهید.

اشکال زدایی و تست

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

JUNIT هنگام اجرای از Android Studio ، منابع موجود در ClassPath را از دست می دهد

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

این مسئله به این دلیل رخ می دهد که از Intellij 13 ، که نیاز به این است که شما فقط یک پوشه واحد به عنوان کلاس کلاس داشته باشید. Builder Intellij تمام منابع را در آن پوشه ساخت کپی می کند ، اما Gradle از منابع کپی نمی کند.

  • راه حل 1: به جای اجرای یک تست واحد ، کار check Gradle را از IDE اجرا کنید.
  • راه حل 2: اسکریپت ساخت خود را به روز کنید تا منابع را به صورت دستی در پوشه ساخت کپی کنید. برای اطلاعات بیشتر به نظر شماره 13 مراجعه کنید.

اجرای تست های Junit ممکن است دو بار کد را کامپایل کند

هنگام ایجاد یک پروژه جدید ، ممکن است پیکربندی الگوی Junit با دو مرحله "قبل از راه اندازی" ایجاد شود: ساخت و Gradle-Aware. این پیکربندی سپس به کلیه تنظیمات Run Run ایجاد شده پخش می شود.

  • برای رفع مشکل برای پروژه فعلی ، روی Run> ویرایش پیکربندی ها کلیک کرده و پیکربندی پیش فرض Junit را تغییر دهید تا فقط گام آگاه Gradle را شامل شود.
  • برای حل مسئله برای همه پروژه های آینده ، روی File> Close Project کلیک کنید. باید صفحه خوشامدگویی را ببینید. سپس بر روی پیکربندی> پیش فرض پروژه> تنظیمات را اجرا کنید و پیکربندی JUNIT را تغییر دهید تا فقط شامل Gradle-Aware Make Step شود.

برخی از تنظیمات اجرا تست کار نمی کنند

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

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

اضافه کردن نقاط شکست جاوا هنگام اشکال زدایی در کد بومی

در حالی که برنامه شما در یک نقطه شکست در کد بومی شما متوقف می شود ، ممکن است اشکال زدایی خودکار و دوگانه بلافاصله نقاط شکست جدید جاوا را که شما تنظیم کرده اید تشخیص ندهند. برای جلوگیری از این مسئله ، قبل از شروع یک جلسه اشکال زدایی یا در حالی که برنامه در نقطه شکست جاوا مکث شده است ، نقاط شکست جاوا را اضافه کنید. برای اطلاعات بیشتر ، به شماره 229949 مراجعه کنید.

بیرون رفتن از اشکال زدایی بومی

در حین استفاده از اشکال زدایی خودکار یا دوگانه برای اشکال زدایی جاوا و کد بومی ، اگر از کد جاوا خود به یک عملکرد بومی خود بروید (به عنوان مثال ، اشکال زدایی در یک خط در کد جاوا خود که یک عملکرد بومی را می نامد ، مکث می کند و شما روی گام کلیک می کنید. ) و می خواهید به کد جاوا خود برگردید ، روی برنامه رزومه کلیک کنید (به جای اینکه بیرون بروید یا قدم بردار). روند برنامه شما هنوز مکث خواهد شد ، بنابراین روی برنامه رزومه کلیک کنید در برگه your-module -ژوا برای از سرگیری آن. برای اطلاعات بیشتر ، به شماره 224385 مراجعه کنید.

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

در حین استفاده از اشکال زدایی بومی برای اولین بار پس از بروزرسانی به Android Studio 4.2 و بالاتر ، ممکن است اشکال زدایی بومی هنگام بارگیری کتابخانه ها از دستگاه Android ، پاسخ را متوقف کند. این مسئله یک مشکل مهم است که حتی اگر جلوی اشکال زدایی را بگیرید و مجدداً راه اندازی کنید ، همچنان اتفاق می افتد. برای رفع این مشکل ، حافظه پنهان LLDB را با $USER/.lldb/module-cache/ حذف کنید.

اشکال زدایی بومی با "فرآیند اشکال زدایی با کد خروجی 127 به پایان رسید"

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

پروفایل

در این بخش موضوعات شناخته شده با پروفایل ها توضیح داده شده است.

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

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

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

خطاهای زمان در پروفایل CPU

ممکن است هنگام انتخاب نمونه روشهای جاوا یا تنظیمات روشهای جاوا ، خطاهای "ضبط نتوانست" را در پروفایل CPU Android Studio را تجربه کنید. اینها اغلب خطاهای زمان بندی هستند ، به خصوص اگر پیام خطای زیر را در پرونده idea.log مشاهده کنید:

Wait for ART trace file timed out

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

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

استثناء ADB هنگام اشکال زدایی یا پروفایل

هنگام استفاده از ابزارهای پلتفرم 29.0.3 ، اشکال زدایی بومی و پروفایل های استودیوی Android ممکن است به درستی کار نکنند ، و ممکن است "AdbCommandRejectedException" یا "عدم اتصال پورت" را در فایل idea.log انتخاب کنید. ارتقاء ابزارهای پلتفرم به 29.0.4 یا بالاتر هر دو مسئله را برطرف می کند.

برای به روزرسانی ابزارهای پلتفرم ، موارد زیر را انجام دهید:

  1. مدیر SDK را از Android Studio با کلیک بر روی Tools> SDK Manager باز کنید یا روی SDK Manager کلیک کنید در نوار ابزار
  2. روی کادر انتخاب کنار سیستم های Android SDK Platform-Tools کلیک کنید تا یک علامت چک را نشان دهد. یک نماد بارگیری باید در ستون سمت چپ ظاهر شود.
  3. روی Apply یا OK کلیک کنید.

افزونه مانع از کار پنجره خروجی می شود

با استفاده از افزونه Highlighter Cmake Simple Highlighter از ظاهر محتوا در پنجره Build Output جلوگیری می کند. ساخت و ساز و برگه خروجی ساخت ظاهر می شود ، اما هیچ خروجی چاپی وجود ندارد ( شماره شماره 204791544 ).

سفارش نصب از راه اندازی جلوگیری می کند

نصب نسخه جدیدتر Android Studio قبل از نسخه قدیمی ممکن است از راه اندازی نسخه قدیمی جلوگیری کند. به عنوان مثال ، اگر ابتدا نسخه قناری Android Studio را نصب کنید ، و سپس سعی کنید نسخه پایدار را نصب و راه اندازی کنید ، ممکن است نسخه پایدار راه اندازی نشود. در مواردی از این دست ، شما باید حافظه پنهان را پاک کنید تا نسخه پایدار (قدیمی تر) راه اندازی شود. در MACOS ، برای پاک کردن حافظه پنهان Library/ApplicationSupport/Google/AndroidStudio version_number . در ویندوز ، برای پاک کردن حافظه نهان از پاکسازی دیسک استفاده کنید.

ضبط آزمون اسپرسو با آهنگسازی کار نمی کند

ضبط آزمون اسپرسو با پروژه هایی که شامل آهنگسازی است ، کار نمی کند. برای ایجاد تست های UI برای پروژه هایی که شامل آهنگسازی هستند ، به آزمایش طرح آهنگسازی خود مراجعه کنید.

درگیری میانبر Logcat با چیدمان صفحه کلید غیر انگلیسی

اگر از یک طرح صفحه کلید غیر انگلیسی استفاده می کنید ، یک میانبر صفحه کلید پیش فرض LogCat ممکن است با طرح مغایرت داشته باشد و از ویرایش شخصیت های خاص هنگام ویرایش متن در استودیوی اندرویدی جلوگیری کند. برای کار در این زمینه ، KEYMAP LogCat متناقض را حذف یا دوباره تنظیم کنید. برای ویرایش KeyMaps LogCat در Android Studio ، به Android Studio> Settings> KeyMap بروید و Logcat را در لیست KeyMaps جستجو کنید. برای اطلاعات بیشتر ، به شماره شماره 263475910 مراجعه کنید.

این مسئله با حذف میانبر LogCat در Android Studio Electric Eel Patch 1 برطرف می شود.

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

در این بخش موضوعات شناخته شده ای که در آخرین نسخه پایدار افزونه Android Gradle وجود دارد ، توضیح داده شده است.

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

هنگام اجرای خط با checkDependencies = true از یک ماژول برنامه ، وابستگی های کتابخانه با ویژگی پویا بررسی نمی شود ، مگر اینکه وابستگی به برنامه نیز باشد ( شماره #191977888 ). به عنوان یک راه حل ، می توان وظیفه خط را روی آن کتابخانه ها اجرا کرد.

امضای پرونده به نام با کاراکترهای بازگشت کالسکه

امضای JAR (طرح V1) از نام پرونده های حاوی کاراکترهای برگشتی ( شماره 63885809 ) پشتیبانی نمی کند.

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

استفاده از 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 است دیگر کار نمی کنند. دلیل این امر این است که کارهای خاص متفاوت دیگر در مرحله پیکربندی ایجاد نمی شوند. این باعث می شود که این افزونه از تمام خروجی های آن در جلو آگاهی نداشته باشد ، اما همچنین به معنای زمان پیکربندی سریعتر است.

مانیفست دیگر در دسترس نیست

روش 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 خاص Variant دارید ، به استفاده از Kotlin 1.6.21 ادامه دهید.

برطرف شده مسائل شناخته شده

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

ثابت در Android Studio 2021.1.1

  • خروجی خطی از دست رفته : هنگامی که کار LINT UP-TO-DATE باشد ، هیچ خروجی متن چاپی برای stdout چاپ نشده است ( شماره #191897708 ). ثابت در AGP 7.1.0-alpha05.
  • مشکلات مربوط به تست واحد یک پروژه برنامه ای که از افزونه HILT استفاده می کند : کلاس تست واحد شامل کلاسهای برنامه غیر سازنده است ، به این معنی که HILT کلاس های برنامه را برای انجام تزریق وابستگی در هنگام اجرای تست های واحد سازگار نمی کند ( شماره شماره 213534628 ). ثابت در AGP 7.1.1.

ثابت در Android Studio 2020.3.1

  • استثنائات LINT در پروژه های Kotlin: پروژه های Kotlin که شامل checkDependencies = true ممکن است با استثنائات یا خطاهای اشاره گر تهی روبرو شوند ( شماره 158777858 ).

ثابت در Android Studio 4.2

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

ثابت در Android Studio 4.1

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

در استودیوی اندرویدی 3.6 ثابت شده است

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

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

ثابت در استودیوی اندرویدی 3.5.2

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

در استودیوی اندروید 3.3.1 ثابت شد

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

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