בדף הזה מפורטות בעיות מוכרות, פתרונות עקיפים וטיפים לפתרון בעיות באמולטור Android. אם אתם נתקלים בבעיה שלא מפורטת כאן או שאתם לא מצליחים להשתמש בפתרון עקיף שמופיע כאן, אתם יכולים לדווח על באג.
בעיות כלליות
מפות Google לא מוצגות בפקדים המורחבים של אמולטור Android
החל מאמצע מאי, בגרסאות של Android Emulator שקודמות לגרסה 34.2.13 לא יהיו יותר מפות Google פונקציונליות באמצעי הבקרה המורחבים. אמולטורים ישנים יותר נשלחים עם גרסה של Chromium שלא תואמת לממשק API של JavaScript במפות Google.
בדיקה אם יש מספיק מקום בדיסק
כדי למנוע קריסות והשהיות בגלל חוסר מקום פנוי בדיסק, האמולטור בודק אם יש מספיק מקום פנוי בדיסק בזמן ההפעלה, ולא מופעל אם אין לפחות 5GB פנויים. אם האמולטור לא מופעל, בודקים אם יש מספיק מקום פנוי בדיסק.
תוכנות אנטי-וירוס
חבילות רבות של תוכנות אבטחה ואנטי-וירוס פועלות על ידי מעקב אחרי כל פעולת קריאה וכתיבה, ולכן השימוש בתוכנות כאלה עלול להפחית את הביצועים של כלים כמו Android Emulator.
חבילות רבות של אנטי-וירוס מספקות את האפשרות להוסיף אפליקציות ספציפיות לרשימה של אפליקציות מהימנות, מה שמאפשר לאפליקציות שמופיעות ברשימה לפעול בלי לפגוע בביצועים. אם אתם נתקלים בביצועים ירודים בשמירה או בטעינה של תמונות מצב של AVD, יכול להיות שתוכלו לשפר את הביצועים האלה על ידי הוספה של אפליקציית אמולטור Android כאפליקציה מהימנה בתוכנת האנטי-וירוס שלכם.
ההשפעה על הביצועים משתנה בין חבילות שונות של תוכנות אנטי-וירוס. אם מותקנת תוכנת אנטי-וירוס נוספת מעבר למה שכלול במערכת ההפעלה, אפשר להריץ בדיקות פשוטות כדי לקבוע איזו תוכנת אנטי-וירוס משפיעה יותר על הביצועים של פעולות הטעינה והשמירה של האמולטור.
Windows: זיכרון RAM פנוי וחיוב על הקצאת זיכרון
כשהאמולטור מופעל, הוא צריך לאתחל את ה-RAM של מערכת ההפעלה האורחת של Android. ב-Windows, האמולטור מבקש שחשבון Windows יקצה את הגודל המלא של זיכרון האורח בזמן ההפעלה, למרות שבמהלך הפעולה בפועל, יכול להיות שהזיכרון יועבר לדף לפי דרישה. האמולטור מבקש את כל כמות הזיכרון של המכונה האורחת בזמן ההתחלה, כי מערכת Windows שמרנית ומוודאת שיש מספיק זיכרון RAM פיזי וקובץ החלפה כדי להכיל את כל קבוצת העבודה הפוטנציאלית. הבקשה הזו מתכוננת לתרחיש הגרוע ביותר, שבו כל הזיכרון של האורח מושפע במהירות בלי אפשרות להשליך או לפנות זיכרון.
לפעמים, כשהאמולטור מבקש מ-Windows להקצות את גודל הזיכרון המלא של המערכת האורחת, הבקשה חורגת ממגבלת ההקצאה הנוכחית, שהיא סכום ה-RAM הפיזי הזמין וקובץ ההחלפה. במקרה כזה, מערכת Windows לא יכולה להבטיח שקבוצת העבודה במקרה הגרוע ביותר תתאים לזיכרון ה-RAM הפיזי או לקובץ ההחלפה, והאמולטור לא יופעל.
במקרים רגילים, כמות השטח בדיסק הקשיח שהוקצה לקובץ ההחלפה בתוספת ה-RAM הפיזי מספיקה לרוב תרחישי השימוש של האמולטור. עם זאת, אם נתקלתם בבעיות בהפעלת האמולטור בגלל חריגה ממגבלת ה-commit, מומלץ לבדוק את עלות ה-commit הנוכחית, שמוצגת בכרטיסייה ביצועים במנהל המשימות של Windows. כדי לפתוח את מנהל המשימות, לוחצים על Ctrl+Shift+Esc.
כדי להקטין את הסיכוי לחרוג ממגבלת השמירה, אפשר:
- לפני שמפעילים את האמולטור, צריך לפנות זיכרון RAM פיזי על ידי סגירת אפליקציות וקבצים שלא בשימוש.
- השבתת כלי עזר לניהול זיכרון ודחיסת זיכרון של צד שלישי. הכלים האלה עלולים לגרום לעלייה לא יעילה בעלות ההקצאה ולהביא את המערכת קרוב יותר למגבלת ההקצאה.
משתמשים בגודל שמנוהל על ידי המערכת עבור קובץ ההחלפה של Windows, שמאפשר להגדיל את הגודל של קובץ ההחלפה בצורה גמישה ודינמית יותר, וכך גם את מגבלת השמירה, בתגובה לביקוש מוגבר מהאמולטור ומאפליקציות אחרות.
מידע נוסף על חיובים על התחייבות ועל הסיבות לכך שהגדרה גמישה היא הטובה ביותר זמין במאמר הזה של מיקרוסופט.
ריבוי מגע לא עובד בחלון של הכלי
תנועות מגע מרובות נקודות, כולל הזזה בשתי אצבעות, לא פועלות כשהאמולטור פועל בחלון של הכלי. כדי להפעיל מולטי-טאץ', מפעילים את האמולטור בחלון נפרד.
האמולטור פוגע בפלט האודיו של Bluetooth
אם אתם משתמשים באוזניות Bluetooth, יכול להיות שתבחינו שפלט האודיו של האוזניות יורד כשמריצים את האמולטור (בעיה מספר 183139207). זה קורה כי כשהאמולטור מופעל, הוא מפעיל את המיקרופון של האוזניות, מה שגורם לאוזניות להעביר את מצב הדופלקס לאיכות מופחתת.
כדי להימנע מהבעיה הזו, משביתים את המיקרופון באמולטור על ידי הוספת hw.audioInput=no לקובץ config.ini של מכשיר Android וירטואלי (AVD).
כדי למצוא קובץ config.ini של AVD, עוברים אל ה-AVD ב-Device Manager, לוחצים על תפריט האפשרויות הנוספות שלו ובוחרים באפשרות Show on Disk (הצגה בדיסק).
השקת מכשירים וירטואליים של Android ב-ChromeOS נכשלת
ב-ChromeOS, יכול להיות שההפעלה של מכשירים וירטואליים של Android (AVD) תיכשל כי חסרה התלות libnss3. כדי להפעיל את מכשירי ה-AVD בהצלחה, מריצים את הפקודה sudo apt install libnss3 כדי להתקין ידנית את הספרייה libnss3.
אזהרות לגבי חיישן הטיית פרק כף היד ב-Wear OS
ב-Wear OS, יכול להיות שהאמולטור ירשום שוב ושוב את ההודעה הבאה לגבי חיישן הטיית פרק כף היד:
the host has not provided value yet for sensorHandle=16
מפתחים יכולים להתעלם מהאזהרות האלה.
חלון האמולטור המוטמע קטן מדי
במחשבים עם רזולוציה נמוכה יותר, כמו 1024x768, יכול להיות שיהיה קשה לקרוא את המסך של האמולטור כשהוא פועל בחלון כלים ב-Android Studio. כדי לפנות יותר מקום לאמולטור, סוגרים את חלון הכלים Device Manager אם הוא פתוח. אפשר גם להוציא את חלון האמולטור מ-Android Studio. כדי לעשות את זה, בחלון האמולטור לוחצים על הגדרות > מצב תצוגה ובוחרים באפשרות חלון במקום הצמדה לרציף.
בעיות בגרפיקה
אמולטור Android פועל לאט אחרי עדכון
יש כמה גורמים חיצוניים שיכולים לגרום לאמולטור Android להתחיל לפעול לאט אחרי עדכון. כדי להתחיל בפתרון הבעיות, מומלץ לבצע את השלבים הבאים:
- אם יש לכם מעבד גרפי של Intel (ובמיוחד Intel HD 4000), ודאו שהורדתם והתקנתם את מנהל ההתקן הגרפי העדכני של Intel.
- אם במחשב יש גם GPU של Intel וגם GPU נפרד, צריך להשבית את ה-GPU של Intel במנהל ההתקנים כדי לוודא שמשתמשים ב-GPU הנפרד.
- מריצים את האמולטור באמצעות מצב
-gpu swiftshader. מידע נוסף על הגדרת אפשרויות להאצת גרפיקה בשורת הפקודה זמין במאמר הגדרת האצת חומרה. - אם אין לכם חיבור IPv6, ודאו שהנתב לא משתמש בכתובות IPv6.
אם הבעיות בביצועים של אמולטור Android נמשכות, אפשר לדווח על באג ולכלול את הפרטים הנדרשים של אמולטור Android כדי שנוכל לבדוק את הבעיה.
שגיאה: לא ניתן למצוא את vulkan-1.dll
אם האמולטור לא מופעל בגלל השגיאה vulkan-1.dll cannot be found,
כנראה שצריך לעדכן את האמולטור. כדי לעדכן את האמולטור ב-Android Studio, עוברים אל Tools > SDK Manager ומתקינים את הגרסה היציבה האחרונה של פלטפורמת Android.
לחלופין, אם אתם לא צריכים אפליקציות שמשתמשות בספריית הגרפיקה Vulkan, אתם יכולים להשבית את Vulkan על ידי הפעלת האמולטור משורת הפקודה עם הדגל -feature -Vulkan.
אי אפשר ליצור תמונת מצב
אין תמיכה ביצירת תמונת מצב של האמולטור שכוללת את ספריית הגרפיקה Vulkan. כדי להריץ את האמולטור בלי Vulkan, צריך להפעיל את האמולטור משורת הפקודה עם הדגל -feature -Vulkan. לחלופין, אם אתם רוצים להשתמש בתמונות מצב כחלק מתהליך העבודה שלכם בפיתוח, אתם יכולים להסיר אפליקציות עם Vulkan, כמו Chrome ב-API 30 ומעלה, ולהימנע משימוש בהן.
אי אפשר לפתוח דף אינטרנט בצורה תקינה
החל מרמת API 30, Chrome משתמש בספריית הגרפיקה Vulkan כקצה העורפי של הרינדור, ויכולות להיות בעיות תאימות במחשבים מסוימים. אם Chrome לא מוצג בצורה תקינה, אפשר לנסות להפעיל את האמולטור משורת הפקודה עם הדגל -feature -Vulkan.
אזהרה לגבי דרייבר של GPU – חזרה לתוכנה
אם אתם מקבלים אזהרה לגבי חזרה לדרייבר של GPU, יכול להיות שאתם משתמשים ב-GPU שלא נתמך. כברירת מחדל, נעשה שימוש באפשרות 'אוטומטי', שעשויה לבחור עיבוד תוכנה. אם בוחרים חומרה, אפשר לאלץ את המערכת להשתמש בעיבוד חומרה (יכול להיות שעדיין תוצג הודעת אזהרה).
אם התמונות לא מגיעות מחנות Play, אפשר לעשות את זה במנהל המכשירים -> 3 נקודות -> עריכה. כדי לערוך תמונות בחנות Play, צריך לערוך ידנית את שני קובצי ההגדרות האלה:
~/.android/your_avd_name.avd/config.ini
~/.android/your_avd_name.avd/hardware-qemu.ini
ומשנים את hw.gpu.mode ל-host
שימו לב שפעולה כזו עלולה להפחית את היציבות של האמולטור. פרטים נוספים מופיעים במאמר בנושא באג.
האמולטור לא מופעל ב-Chrome Remote Desktop ב-Windows
אם האמולטור לא מופעל כשמשתמשים ב-Chrome Remote Desktop ב-Windows, הפתרון המומלץ כרגע הוא להשתמש בדגל -gpu כמו -gpu host או -gpu swiftshader.
האמולטור הסתיים עם קוד יציאה -1073741511 (Windows 8.1 או Windows 10 N)
הסיבה לכך היא כנראה שהקובץ msvcp140.dll, msvcp140_1.dll ו-msvcp140_2.dll חסר במערכת (לדוגמה:C:\Windows\System32 (מערכת 64 ביט)) בעבר, משתמשים שדיווחו על הבעיה הזו הצליחו לפתור אותה על ידי התקנה (או התקנה מחדש) של Windows Media Feature, שהוא אופציונלי בגרסאות Windows 10 N.
בעיה דומה יכולה להתרחש ב-Windows 8.1.
באתר של מיקרוסופט מוסבר איך להתקין את התכונה Windows Media Feature.
שימו לב: מערכת Windows 8.1 לא נתמכת יותר, לא רק על ידי Android Studio ו-אמולטור Android, אלא גם על ידי מיקרוסופט (מאז 2023). אפשר לומר דבר דומה גם לגבי Windows 10, כי מיקרוסופט הודיעה שהתמיכה ב-Windows 10 תסתיים ב-14 באוקטובר 2025. אנחנו מבינים שיש צורך בפתרון ב-Windows 8.1/Windows 10, אבל המשך הפיתוח והתמיכה במערכות הפעלה ישנות יותר יוצר אתגרים שיכולים להשפיע על היציבות והביצועים של האמולטור עבור רוב המשתמשים שלנו.
כפתרון אפשרי (אבל לא נתמך), אם אתם לא מצליחים לשדרג את מערכת ההפעלה, אתם יכולים לנסות למצוא גרסה ישנה יותר של Android Emulator בארכיון שלנו (https://developer.android.com/studio/emulator_archive, הגרסה היציבה האחרונה היא 32.1.11) שאולי תהיה תואמת ל-Windows 8.1. חשוב לזכור שהגרסאות הישנות האלה לא נתמכות, ויכול להיות שהן לא יפעלו בצורה תקינה. אנחנו ממליצים מאוד לא להשתמש בהן עם גרסאות חדשות יותר של Android (כמו API 34 ומעלה).
כדי ליהנות מחוויית השימוש הטובה ביותר באמולטור Android, מומלץ לשדרג למערכת הפעלה נתמכת.
אנו מתנצלים על אי הנוחות שעלולה להיגרם בשל כך.
האמולטור מתנהג בצורה לא תקינה ב-macOS במצב עיבוד חומרה
במכשירי Mac עם Apple Silicon, האמולטור משתמש בספריית MoltenVK עבור Vulkan API כשבוחרים במצב של עיבוד חומרה. למרות שבדרך כלל MoltenVK מספקת ביצועים טובים בהרבה, הספרייה לא תומכת בכל התכונות של Vulkan. במקרה של בעיות תאימות, כמו כשלים בהידור של shader, תקלות גרפיות או קריסות באפליקציות, צריך לשנות את מצב העיבוד לתוכנה דרך הגדרות ה-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 של Google Public DNS. מידע נוסף על Google Public DNS מופיע במאמר Google Public DNS למכשירים.
אין חיבור לאינטרנט: בעיות בפענוח DNS
לפעמים כתובות DNS בקובץ /etc/resolv.conf לא פועלות כמו שצריך.
כדי לפתור את הבעיה, אפשר להפעיל את האמולטור משורת הפקודה באמצעות האפשרות -dns-server 8.8.8.8 או -dns.server 2001:4860:4860::8888 כדי להתחבר לרשת IPv6 בלבד.
אין חיבור לאינטרנט: בעיות שקשורות לניגוד בין כתובות MAC
אם לכמה אמולטורים יש את אותה כתובת MAC, רק לאמולטור הראשון שהופעל תהיה גישה לאינטרנט. זה יכול לקרות אם לאמולטורים הוקצתה אותה יציאת ADB במהלך היצירה שלהם, או אם הם הופעלו מאותו צילום מצב.
כדי לפתור את הבעיה, אפשר למחוק את הנתונים ב-AVD השני או ליצור AVD חדש.
מגבלות בהגדרת הרשת דרך שורת הפקודה (-netsim-args)
אפשר להחיל הגדרות רשת של שורת פקודה שצוינו באמצעות -netsim-args רק כשמפעילים את מופע האמולטור הראשון. האמולטור מחיל את ההגדרות האלה על כל האמולטורים שיופעלו בהמשך. אי אפשר להגדיר הגדרות רשת שונות באמצעות ארגומנטים של שורת פקודה למספר אמולטורים שפועלים בו-זמנית.
בעיות ישנות (באימולטורים שהוצאו משימוש או במערכות ישנות)
לא ניתן להפעיל את AVD
יכול להיות ש-AVD לא יופעל אם קיים דוח קריסה לאמולטור חדש יותר (בעיה מספר #281725854). הבעיה הזו מתרחשת רק אצל משתמשים שמעדכנים מגרסת קנרי 33.x לגרסה 32.1.13, שהייתה קריסה בפעם האחרונה שהם הפעילו את גרסה 33.x, ושלא הפעילו מחדש את ה-AVD מאז, כך שהספרייה %TEMP% או /tmp עדיין פועלת. אם נתקלתם בבעיה הזו, נסו לנקות את הספרייה %TEMP% (/tmp ב-Linux או ב-macOS).
Windows: האמולטור לא מופעל אם יש Unicode בשם של AVD
ב-Windows, כשמנהל המכשירים יוצר מכשיר וירטואלי של Android (AVD), הוא יוצר את ה-AVD במיקום C:\Users\<name>\.android\avd כברירת מחדל. עם זאת, אם שם ה-AVD (<name>) מכיל Unicode, האמולטור לא יכול להפעיל את ה-AVD בצורה תקינה באמצעות מיקום ברירת המחדל הזה.
הבעיה הזו תוקנה ב-Emulator 31.3.6 ואילך. כדי לפתור את הבעיה, צריך לעדכן את האמולטור באמצעות האפשרות Tools > SDK Manager.
לחלופין, כדי לעקוף את הבעיה, אפשר להגדיר את משתנה הסביבה ANDROID_SDK_HOME לספרייה מותאמת אישית לפני שיוצרים מכשיר וירטואלי של Android (AVD). לדוגמה, יוצרים את הספרייה C:\Android\home, ואז מגדירים את ANDROID_SDK_HOME לספרייה החדשה הזו. מידע נוסף זמין במאמר בנושא משתני סביבה.
ל-Hypervisor אין אפשרות לבצע אמולציה של תכונות מסוימות של מעבד שנדרשות למערכות Android x86
היפר-ויזורים בדרך כלל לא יכולים לבצע אמולציה של תכונות מסוימות של מעבד, כמו Streaming SIMD Extensions (SSE), שנדרשות על ידי מערכות Android x86.