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

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

مسائل عمومی


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

نسخه‌های شبیه‌ساز اندروید قبل از نسخه ۳۴.۲.۱۳ از اواسط ماه مه دیگر نقشه‌های گوگل کاربردی را در کنترل‌های توسعه‌یافته نخواهند داشت. شبیه‌سازهای قدیمی‌تر با نسخه‌ای از کرومیوم ارائه می‌شوند که با API جاوااسکریپت نقشه‌های گوگل سازگار نیست.

بررسی فضای دیسک کافی

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

نرم‌افزار آنتی‌ویروس

از آنجا که بسیاری از بسته‌های نرم‌افزاری امنیتی و آنتی‌ویروس با نظارت بر هر عملیات خواندن و نوشتن کار می‌کنند، استفاده از چنین نرم‌افزارهایی می‌تواند عملکرد ابزارهایی مانند شبیه‌ساز اندروید را کاهش دهد.

بسیاری از بسته‌های آنتی‌ویروس قابلیت اضافه کردن برنامه‌های خاص به لیست برنامه‌های مورد اعتماد را ارائه می‌دهند که به برنامه‌های فهرست‌شده اجازه می‌دهد بدون افت عملکرد کار کنند. اگر در ذخیره یا بارگذاری اسنپ‌شات‌های AVD عملکرد ضعیفی را تجربه می‌کنید، می‌توانید با اضافه کردن برنامه شبیه‌ساز اندروید به عنوان یک برنامه مورد اعتماد در نرم‌افزار آنتی‌ویروس خود، این عملکرد را بهبود بخشید.

تأثیر عملکرد بین بسته‌های نرم‌افزاری آنتی‌ویروس متفاوت است. اگر علاوه بر آنچه در سیستم عامل شما وجود دارد، نرم‌افزار آنتی‌ویروس دیگری نیز نصب کرده‌اید، می‌توانید آزمایش‌های ساده‌ای را انجام دهید تا مشخص شود کدام نرم‌افزار آنتی‌ویروس تأثیر عملکرد بیشتری بر بارگذاری و ذخیره عملیات شبیه‌ساز دارد.

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

اگر از نرم‌افزار Avast استفاده می‌کنید و در اجرای شبیه‌ساز اندروید با مشکل مواجه هستید، در تنظیمات عیب‌یابی Avast، گزینه Use nested virtualization را در صورت وجود غیرفعال کنید و Hardware assisted virtualization را فعال کنید . علاوه بر این، پس از غیرفعال کردن مجازی‌سازی سخت‌افزاری Avast، با نصب مجدد کامل آخرین نسخه HAXM از SDK Manager، مطمئن شوید که HAXM به درستی تنظیم شده است.

در ویندوز، گاهی اوقات AVD با HAXM هنگ می‌کند و این مشکل را می‌توان با حذف کامل McAfee حل کرد.

ویندوز: رم آزاد و هزینه کامیت

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

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

در موارد معمول، مقدار فضای هارد دیسک اختصاص داده شده برای فایل صفحه به علاوه رم فیزیکی برای اکثر موارد استفاده از شبیه‌ساز بیش از حد کافی است. با این حال، اگر به دلیل عبور از حد مجاز commit، در شروع شبیه‌ساز با مشکل مواجه شدید، توصیه می‌کنیم میزان commit فعلی را که می‌توانید در تب Performance در Windows Task Manager مشاهده کنید، بررسی کنید. برای باز کردن Task Manager، کلیدهای Ctrl+Shift+Esc را فشار دهید.

برای کاهش احتمال عبور از حد مجاز commit به روش‌های مختلف:

  • قبل از اجرای شبیه‌ساز، با بستن برنامه‌ها و فایل‌های بلااستفاده، رم فیزیکی را آزاد کنید.
  • غیرفعال کردن ابزارهای مدیریت حافظه شخص ثالث و فشرده‌سازی حافظه. این ابزارها می‌توانند به طور ناکارآمد باعث افزایش هزینه کامیت و نزدیک‌تر شدن سیستم شما به حد کامیت شوند.
  • از یک اندازه مدیریت‌شده توسط سیستم برای فایل صفحه ویندوز استفاده کنید، که می‌تواند با انعطاف‌پذیری و پویایی بیشتری اندازه فایل صفحه و در نتیجه محدودیت کامیت را در پاسخ به افزایش تقاضا از سوی شبیه‌ساز و سایر برنامه‌ها افزایش دهد.

    برای اطلاعات بیشتر در مورد هزینه‌های کامیت و اینکه چرا یک تنظیم انعطاف‌پذیر بهترین عملکرد را دارد، این مقاله مایکروسافت را بخوانید.

چند لمسی در پنجره ابزار کار نمی‌کند

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

شبیه‌ساز، خروجی صدای بلوتوث را کاهش می‌دهد

اگر از هدست بلوتوث استفاده می‌کنید، ممکن است متوجه شوید که خروجی صدای هدفون بلوتوث هنگام اجرای شبیه‌ساز ( شماره 183139207 ) کاهش می‌یابد. این اتفاق به این دلیل می‌افتد که وقتی شبیه‌ساز اجرا می‌شود، میکروفون هدست را روشن می‌کند و باعث می‌شود هدست با کیفیت پایین‌تری به حالت دوطرفه تغییر حالت دهد.

برای جلوگیری از این مشکل، میکروفون را در شبیه‌ساز با اضافه کردن hw.audioInput=no به فایل config.ini دستگاه مجازی اندروید (AVD) غیرفعال کنید. برای یافتن فایل config.ini یک AVD، به AVD در Device Manager بروید، روی منوی سرریز آن کلیک کنید و Show on Disk را انتخاب کنید.

دستگاه‌های مجازی اندروید در ChromeOS اجرا نمی‌شوند

در سیستم عامل کروم، ممکن است دستگاه‌های مجازی اندروید (AVD) به دلیل عدم وجود وابستگی به libnss3 اجرا نشوند. برای اجرای موفقیت‌آمیز AVDها، sudo apt install libnss3 اجرا کنید تا کتابخانه libnss3 به صورت دستی نصب شود.

هشدارهای حسگر شیب مچ دست در Wear OS

در Wear OS، شبیه‌ساز ممکن است بارها و بارها پیام زیر را در مورد حسگر شیب مچ دست ثبت کند: the host has not provided value yet for sensorHandle=16

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

پنجره شبیه‌ساز جاسازی‌شده خیلی کوچک است

در دستگاه‌هایی با وضوح تصویر پایین‌تر، مانند ۱۰۲۴x۷۶۸، خواندن صفحه شبیه‌ساز هنگام اجرا در یک پنجره ابزار در اندروید استودیو می‌تواند دشوار باشد. برای اینکه شبیه‌ساز فضای بیشتری داشته باشد، در صورت باز بودن، پنجره ابزار Device Manager را ببندید. همچنین می‌توانید پنجره شبیه‌ساز را از اندروید استودیو بیرون بکشید. برای انجام این کار، در پنجره شبیه‌ساز، روی تنظیمات > حالت مشاهده کلیک کنید و به جای Dock Pinned، پنجره را انتخاب کنید.

مشکلات گرافیکی


شبیه‌ساز اندروید بعد از به‌روزرسانی کند اجرا می‌شود

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

  • اگر پردازنده گرافیکی اینتل (و به ویژه Intel HD 4000) دارید، مطمئن شوید که آخرین درایور گرافیک اینتل را دانلود و نصب کرده‌اید.
  • اگر دستگاه شما هم پردازنده گرافیکی اینتل و هم پردازنده گرافیکی مجزا دارد، پردازنده گرافیکی اینتل را در Device Manager غیرفعال کنید تا مطمئن شوید که از پردازنده گرافیکی مجزا استفاده می‌کنید.
  • شبیه‌ساز را با استفاده از حالت -gpu swiftshader اجرا کنید. برای اطلاعات بیشتر در مورد پیکربندی گزینه‌های شتاب گرافیکی در خط فرمان، به پیکربندی شتاب سخت‌افزاری مراجعه کنید.
  • اگر اتصال IPv6 ندارید، مطمئن شوید که روتر شما از آدرس‌های IPv6 استفاده نمی‌کند.

اگر هنوز با کندی عملکرد شبیه‌ساز اندروید (Android Emulator) مشکل دارید، اشکال را گزارش دهید و جزئیات لازم برای شبیه‌ساز اندروید را ذکر کنید تا بتوانیم بررسی کنیم.

خطا: vulkan-1.dll پیدا نشد

اگر شبیه‌ساز به دلیل خطای vulkan-1.dll cannot be found اجرا نشد، احتمالاً باید شبیه‌ساز را به‌روزرسانی کنید. برای به‌روزرسانی شبیه‌ساز در اندروید استودیو، به Tools > SDK Manager بروید و آخرین نسخه پایدار پلتفرم اندروید را نصب کنید.

از طرف دیگر، اگر به هیچ برنامه‌ای که از کتابخانه گرافیکی Vulkan استفاده می‌کند نیاز ندارید، با اجرای شبیه‌ساز از خط فرمان با استفاده از پرچم -feature -Vulkan ، Vulkan را خاموش کنید.

امکان ایجاد تصویر لحظه‌ای وجود ندارد

ایجاد اسنپ‌شات از شبیه‌ساز شامل کتابخانه گرافیکی Vulkan پشتیبانی نمی‌شود. برای اجرای شبیه‌ساز بدون Vulkan، شبیه‌ساز را از خط فرمان با پرچم -feature -Vulkan اجرا کنید. از طرف دیگر، اگر می‌خواهید از اسنپ‌شات‌ها به عنوان بخشی از گردش کار توسعه خود استفاده کنید، می‌توانید برنامه‌هایی را که با Vulkan کار می‌کنند، مانند Chrome با API 30 یا بالاتر، حذف نصب کرده و از استفاده از آنها خودداری کنید.

صفحه وب به درستی باز نمی‌شود

با شروع از API سطح 30، کروم از کتابخانه گرافیکی Vulkan به عنوان backend رندر خود استفاده می‌کند و ممکن است در برخی از دستگاه‌ها با مشکلات سازگاری مواجه شود. اگر کروم به درستی برای شما رندر نمی‌شود، سعی کنید شبیه‌ساز را از خط فرمان با استفاده از flag -feature -Vulkan اجرا کنید.

هشدار درایور پردازنده گرافیکی - بازگشت به نرم‌افزار

اگر هشداری در مورد عدم پشتیبانی درایور GPU دریافت می‌کنید، ممکن است از یک GPU پشتیبانی نشده استفاده کنید. به طور پیش‌فرض از حالت خودکار استفاده می‌کند که ممکن است رندر نرم‌افزاری را انتخاب کند. اگر سخت‌افزار را انتخاب کنید، باید بتوانید آن را مجبور به استفاده از رندر سخت‌افزاری کنید (ممکن است همچنان یک پیام هشدار نمایش داده شود).

برای تصاویر غیر از پلی‌استور، می‌توانید این کار را در مدیریت دستگاه -> ۳ نقطه -> ویرایش انجام دهید. برای تصاویر پلی‌استور، باید آن ۲ فایل پیکربندی را به صورت دستی ویرایش کنید:

~/.android/your_avd_name.avd/config.ini

~/.android/your_avd_name.avd/hardware-qemu.ini

و hw.gpu.mode به host تغییر دهید

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

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

اگر Emulator هنگام استفاده از Chrome Remote Desktop در ویندوز بوت نشد، راه حل پیشنهادی فعلی استفاده از پرچم gpu مانند -gpu host یا -gpu swiftshader است.

شبیه‌ساز با کد خروج -1073741511 خاتمه یافت (ویندوز 8.1 یا ویندوز 10 N)

دلیل این مشکل احتمالاً این است که سیستم شما (مثلاً C:\Windows\System32 (سیستم ۶۴ بیتی)) فایل‌های msvcp140.dll، msvcp140_1.dll و msvcp140_2.dll را ندارد. در گذشته، کاربرانی که این مشکل را گزارش کرده بودند، می‌توانستند با نصب (یا نصب مجدد) Windows Media Feature که در نسخه‌های N ویندوز ۱۰ اختیاری است، آن را برطرف کنند.

مشکل مشابهی را می‌توان در ویندوز ۸.۱ مشاهده کرد.

نحوه نصب Windows Media Feature را در وب‌سایت مایکروسافت بررسی کنید.

توجه داشته باشید که ویندوز ۸.۱ دیگر نه تنها توسط اندروید استودیو و شبیه‌ساز اندروید، بلکه توسط مایکروسافت نیز (از سال ۲۰۲۳) پشتیبانی نمی‌شود. می‌توان نظر مشابهی را در مورد ویندوز ۱۰ نیز بیان کرد، زیرا مایکروسافت اعلام کرد که پشتیبانی از ویندوز ۱۰ در ۱۴ اکتبر ۲۰۲۵ به پایان می‌رسد. در حالی که ما نیاز به یک راه‌حل برای ویندوز ۸.۱/ویندوز ۱۰ را درک می‌کنیم، ادامه توسعه و پشتیبانی از سیستم عامل‌های قدیمی‌تر چالش‌هایی را ایجاد می‌کند که می‌تواند بر پایداری و عملکرد شبیه‌ساز برای اکثر کاربران ما تأثیر بگذارد.

به عنوان یک راه حل احتمالی (اما پشتیبانی نشده)، اگر نمی‌توانید سیستم عامل خود را ارتقا دهید، می‌توانید سعی کنید نسخه قدیمی‌تری از شبیه‌ساز اندروید را در آرشیو ما (https://developer.android.com/studio/emulator_archive آخرین نسخه پایدار 32.1.11 است) پیدا کنید که ممکن است با ویندوز 8.1 سازگار باشد. توجه داشته باشید که این نسخه‌های پایین‌تر پشتیبانی نمی‌شوند و ممکن است به درستی کار نکنند، و ما اکیداً توصیه می‌کنیم که از آنها با نسخه‌های جدیدتر اندروید (مانند API 34 و بالاتر) استفاده نکنید.

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

از هرگونه ناراحتی که ممکن است این موضوع ایجاد کند، عذرخواهی می‌کنیم.

شبیه‌ساز در حالت رندر سخت‌افزاری در macOS به درستی عمل نمی‌کند

در دستگاه‌های مک با پردازنده اپل سیلیکون، شبیه‌ساز هنگام انتخاب حالت رندر سخت‌افزاری، از کتابخانه MoltenVK برای رابط برنامه‌نویسی Vulkan استفاده می‌کند. اگرچه MoltenVK عموماً عملکرد بسیار بهتری ارائه می‌دهد، اما این کتابخانه از همه ویژگی‌های Vulkan پشتیبانی نمی‌کند. در صورت بروز مشکلات سازگاری، مانند خرابی کامپایل شیدر، اشکالات گرافیکی یا خرابی در برنامه‌های خود، حالت رندر را از طریق تنظیمات AVD به نرم‌افزار تغییر دهید یا از آرگومان خط فرمان -gpu swiftshader استفاده کنید.

از طرف دیگر، می‌توانید پشتیبانی از Vulkan را با آرگومان -feature -Vulkan غیرفعال کنید تا به استفاده از شتاب سخت‌افزاری در برنامه‌های GLES ادامه دهید.

مشکلات شبکه


اینترنت قطع است: آدرس DNS سرور پیدا نمی‌شود

اگر شبیه‌ساز نمی‌تواند به اینترنت متصل شود، سعی کنید شبیه‌ساز را از خط فرمان با استفاده از گزینه -dns-server “2001:4860:4860::8844,2001:4860:4860::8888,8.8.8.8,8.8.4.4” . این دستور لیستی از آدرس‌های IP DNS عمومی گوگل را که با کاما از هم جدا شده‌اند، ارائه می‌دهد. برای اطلاعات بیشتر در مورد DNS عمومی گوگل، به DNS عمومی گوگل برای دستگاه‌های خود مراجعه کنید.

اینترنت قطع شده: مشکلات مربوط به وضوح DNS

گاهی اوقات آدرس‌های DNS در فایل /etc/resolv.conf به درستی کار نمی‌کنند. می‌توانید با اجرای شبیه‌ساز از خط فرمان با استفاده از گزینه -dns-server 8.8.8.8 یا -dns.server 2001:4860:4860::8888 برای اتصال از طریق یک شبکه فقط IPv6، این مشکل را حل کنید.

اینترنت قطع شده: مشکلات تداخل آدرس مک

اگر چندین شبیه‌ساز آدرس MAC یکسانی داشته باشند، فقط اولین شبیه‌سازی که اجرا می‌شود به اینترنت دسترسی خواهد داشت. این اتفاق زمانی می‌افتد که در هنگام ایجاد، پورت ADB یکسانی به شبیه‌سازها اختصاص داده شده باشد یا از یک snapshot اجرا شده باشند.

برای حل این مشکل، می‌توانید داده‌های AVD دوم را پاک کنید یا یک AVD جدید ایجاد کنید.

محدودیت‌های پیکربندی شبکه خط فرمان ( -netsim-args )

شما فقط می‌توانید تنظیمات شبکه خط فرمان مشخص شده با -netsim-args را هنگام اجرای اولین نمونه شبیه‌ساز اعمال کنید. شبیه‌ساز این تنظیمات را برای هر شبیه‌ساز بعدی که اجرا شود اعمال می‌کند. شما نمی‌توانید تنظیمات شبکه مختلف را با استفاده از آرگومان‌های خط فرمان برای چندین شبیه‌ساز که همزمان اجرا می‌شوند، پیکربندی کنید.

مشکلات قدیمی (روی شبیه‌سازهای منسوخ‌شده یا سیستم‌های قدیمی)


قادر به اجرای AVD نیست

اگر گزارش خرابی برای شبیه‌ساز جدیدتری وجود داشته باشد ( شماره #281725854 )، ممکن است AVD اجرا نشود. این مشکل فقط برای کاربرانی رخ می‌دهد که از نسخه canary 33.x به 32.1.13 به‌روزرسانی می‌کنند، آخرین باری که نسخه 33.x را اجرا کردند، دچار خرابی شدند و از آن زمان AVD خود را مجدداً راه‌اندازی نکرده‌اند، بنابراین دایرکتوری %TEMP% یا /tmp هنوز روشن است. اگر با این مشکل مواجه هستید، سعی کنید دایرکتوری %TEMP% ( /tmp در لینوکس یا macOS) را پاک کنید.

ویندوز: اگر نام AVD از نوع Unicode باشد، شبیه‌ساز اجرا نمی‌شود

در ویندوز، وقتی Device Manager یک دستگاه مجازی اندروید (AVD) ایجاد می‌کند، به طور پیش‌فرض AVD را در C:\Users\<name>\.android\avd ایجاد می‌کند. با این حال، اگر نام AVD ( <name> ) دارای یونیکد باشد، شبیه‌ساز نمی‌تواند AVD را به درستی با استفاده از این مکان پیش‌فرض راه‌اندازی کند.

این مشکل در شبیه‌ساز ۳۱.۳.۶ و بالاتر برطرف شده است. برای حل این مشکل، شبیه‌ساز را با انتخاب Tools > SDK Manager به‌روزرسانی کنید.

روش دیگر، برای حل این مشکل، قبل از ایجاد AVD، متغیر محیطی ANDROID_SDK_HOME را روی یک دایرکتوری سفارشی تنظیم کنید. برای مثال، دایرکتوری C:\Android\home را ایجاد کنید و سپس ANDROID_SDK_HOME را روی این دایرکتوری تازه ایجاد شده تنظیم کنید. برای کسب اطلاعات بیشتر، به متغیرهای محیطی مراجعه کنید.

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

هایپروایزرها معمولاً نمی‌توانند برخی از ویژگی‌های CPU، مانند Streaming SIMD Extensions (SSE) ، که مورد نیاز سیستم‌های اندروید x86 است را شبیه‌سازی کنند.