我正在为 Android 4.4 KitKat 创建一个模拟器,但模拟器需要很长时间并且无法启动。我尝试了许多设备,例如 Nexus4、Galaxy Nexus、Nexus S 等,但都没有奏效。只是一个带有android标志的黑屏很长一段时间。有什么建议么?
16 回答
不幸的是,模拟器确实需要很长时间才能加载。Android 开发人员经常抱怨。
如果您进入 AVD 配置并修改您的 KitKat 模拟器并勾选显示的复选框,有时会有所帮助Use Host GPU
。这使它稍微快一点。
我还发现,如果您使用它决定的默认 RAM 空间(通常超过 1000 个),如果它完全加载,它会花费很长的时间。我通常一次将我的设置为 512MB,700+MB,但减少了模拟器可以提供的 RAM 量。
您还可以使用不同的模拟器,虽然它目前还不支持 KitKat,虽然他们说它即将推出,但我听到了很多积极的评论。
您可以在http://www.genymotion.com/找到替代模拟器
更新
谷歌已经发布了带有 Android Studio 2 的新版本的 Android 模拟器。不幸的是,AS、构建工具和模拟器处于 Beta/Release Candidates 但我已经在我自己的应用程序中使用它们一段时间并且没有任何问题,但也发现模拟器比旧的有很大改进。 http://tools.android.com/tech-docs/emulator将向您展示新功能以及如何获得新的模拟器。
要找出问题所在,请尝试使用-debug-all运行模拟器。在我的情况下,模拟器在以下情况下冻结:
$./emulator -avd 4.4 -partition-size 1024 -debug-all 模拟器:在 ~/data/develop/android/android-sdk-linux 找到 SDK 根目录 …等等等等等等… 模拟器:qpa_audio_init:进入和-noaudio选项解决了这个问题。
使用非常少量的内存(比如 200mb)启动模拟器的第一次运行可能会有所帮助
在我的机器上,模拟器拒绝以 700MB 启动(我等了 30 分钟然后杀死它)它只是显示一个空白屏幕 - 甚至没有 Android 消息。
当我将内存减少到 128MB 时,模拟器在正常时间(我的 m/c 上大约 50 秒)启动,但没有足够的 RAM 来加载后台应用程序。我将其更改为 256 MB,一切都变得栩栩如生。现在我可以将内存更改为 768MB,它现在可以在同一时间段内正常加载。
似乎第一次运行需要使用少量(呃)内存,但是一旦成功,您就可以毫无问题地增加它们的内存(在 Windows 上最多 768MB)。
我遇到了同样的问题...
使用 x86 模拟器对我有用的解决方案是使用最新版本更新 HAXM 并重新启动我的计算机。
http://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager
我希望它能帮助并解决你们中的许多人的问题。
问候
遇到同样的问题,我将 AVD 配置为使用 516MB 的 RAM,并且加载正常。希望这对您或其他人有所帮助。
Mine gets sigabort on surface flinger unless I enable "Use Host GPU".
EDIT: Seems this is related to extreme resolutions. Try using lower resolution... if You do use res like 1080x1920 - enabling Host GPU works for me
Check adb logcat output from emulator while booting, if yours is similar it might work.
Please find log below...
I/Vold ( 46): Vold 2.1 (the revenge) firing up
I/Netd ( 48): Netd 1.0 starting
D/Vold ( 46): Volume sdcard state changing -1 (Initializing) -> 0 (No-Media)
W/InterfaceController( 48): Warning (dlopen failed: library "/system/lib/libnetcmdiface.so" not found) while opening the net interface command library
I/SurfaceFlinger( 51): SurfaceFlinger is starting
I/SurfaceFlinger( 51): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
D/libEGL ( 51): Emulator without GPU support detected. Fallback to software renderer.
D/libEGL ( 51): loaded /system/lib/egl/libGLES_android.so
D/gralloc_goldfish( 51): Emulator without GPU emulation detected.
E/SurfaceFlinger( 51): hwcomposer module not found
E/SurfaceFlinger( 51): ERROR: failed to open framebuffer (No such file or directory), aborting
F/libc ( 51): Fatal signal 6 (SIGABRT) at 0x00000033 (code=-6), thread 51 (surfaceflinger)
I/DEBUG ( 49): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 49): Build fingerprint: 'generic/sdk/generic:4.4.2/KK/986172:eng/test-keys'
I/DEBUG ( 49): Revision: '0'
I/DEBUG ( 49): pid: 51, tid: 51, name: surfaceflinger >>> /system/bin/surfaceflinger <<<
I/DEBUG ( 49): signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
I/DEBUG ( 49): r0 00000000 r1 00000033 r2 00000006 r3 00000000
I/DEBUG ( 49): r4 00000006 r5 00000002 r6 00000033 r7 0000010c
I/DEBUG ( 49): r8 b6fd084d r9 b7f1552c sl 00000000 fp bef71b9c
I/DEBUG ( 49): ip fffffffe sp bef719e8 lr b6f34ead pc b6f43e20 cpsr 00000010
I/DEBUG ( 49): d0 0036f09323cb6394 d1 0000000000000000
I/DEBUG ( 49): d2 0000000000000000 d3 0000000000000000
I/DEBUG ( 49): d4 0000000000000000 d5 41c1e5b1ca000000
I/DEBUG ( 49): d6 3f50624dd2f1a9fc d7 414b7849ee147ae1
I/DEBUG ( 49): d8 0000000000000000 d9 0000000000000000
I/DEBUG ( 49): d10 0000000000000000 d11 0000000000000000
I/DEBUG ( 49): d12 0000000000000000 d13 0000000000000000
I/DEBUG ( 49): d14 0000000000000000 d15 0000000000000000
I/DEBUG ( 49): scr 00000010
I/DEBUG ( 49):
也许亚行已经完蛋了!
如果您使用 Windows 开发 Android,则在\android-sdk\platform-tools\
目录中打开一个 DOS 会话(注意:这是 Android SDK 安装的子目录)。
在 DOS 窗口中,键入:
adb kill-server
这将杀死当前的 Android 调试桥 (ADB)。然后,通过键入以下内容再次启动它:
adb start-server
要验证您的 Android 4.4 KitKat 模拟器是否正在运行,请键入:
adb devices
如果仍然不起作用,请重复上述步骤。否则,重新启动您的 IDE(Eclipse、Android Studio 等)并重试。
我遇到了同样的问题,帮助我重新启动计算机并启动模拟器,只打开几个程序(Eclipse、Chrome 等等)。我的开发计算机是一台 4 GB 的笔记本电脑,带有运行 Ubuntu 12.04 的集成显卡。没什么花哨的,KitKat 模拟器可以工作。正如预期的那样,非常缓慢:(,但有效。
考虑到模拟器很耗内存,当您尝试运行它们时,也许您的开发机器资源不足?
我遇到过同样的问题。将英特尔 HAXM 加速器从 1.0.1 更新到 1.0.8(当前版本)对我来说很有效。
首先转到您的 IDE 的 SDK 管理器插件,然后选择您要为其创建 Android 虚拟设备的 API 级别。并确保已安装 API 的 SDK 平台。如果 SDK 显示 Not installed ,则首先下载它。
下载完成后自动安装。重新启动您的 IDE。启动您的 AVD 插件,然后为您下载的 AVD 选择 API。
SDK 目前最大的问题是没有发布 x86 仿真器图像。
但是,我确实通过将 x86 JB AVD 和 ARM KitKat AVD 中的 INI 以及构建 aosp_x86-eng 并将用于 x86 的预构建 QEMU 内核从 KitKat AOSP 复制到我的 Windows 中,在 Windows 中工作了一个 KitKat x86 模拟器主持人。在带有 HAXM 扩展的 Windows 中运行的 x86 KitKat 映像非常快,与在实际硬件上运行一样快或更快,尤其是在启用“使用主机 GPU”的情况下。
如果您不是自己构建 Android,这可能对您没有帮助。但是,如果您正在构建 AOSP(或者您可以在线找到预构建的 x86 KitKat Android 映像和 QEMU 内核),我可以发布有关如何使其在 Windows 中运行的更多详细信息。
这可能已经得到解答......但我遇到了一个问题,它得到了解决......请看这篇文章,我相信你会正确的: 设置 Android 4.4 kitkat 模拟器
让我知道它是否有效...
我在安装 Windows Server 2012 R2 时遇到了类似的问题。根本原因是缺少视频驱动程序(普通的 Microsoft 驱动程序还不够)。我正在使用一个拼凑而成的 frankenbox,发现按照说明在此处找到合适的驱动程序很有用:
http://support.amd.com/en-us/kb-articles/Pages/HowtoidentifythemodelofanATIgraphicscard.aspx#DID
一旦我有了正确的驱动程序,模拟器就可以正常启动......
我认为 Intel x86(Kitkat) 的系统映像中存在错误。因为它仅在使用 -partition-size 和 -memory 选项时才会使用超过 256MB 的存储空间和内存。
所以我更改了系统映像,kitkat 有两个系统映像,一个是 Intel x86 Atom 系统映像,另一个是 Google API(x86 系统映像)。对我来说,Google API 图像不会发生这种情况。
使用命令行一次,然后它也将在 Studio 中正常工作:
emulator -avd ExampleVDName -debug-all -noaudio -nocache -wipe-data -dns-server 8.8.8.8
在使用它之前,不要忘记导航到工具目录。您需要知道您的 SDK 位于何处。在我的例子中,我必须先导航到这个目录,然后使用上面的命令。
cd C:\AndroidSDK\tools
ps:不要忘记使用自己的虚拟设备名称,而不是ExampleVHDName
.
就我而言,解决方案是切换到不同的系统映像。我使用的是 Atom x86_64,一旦我切换到 Atom x86,模拟器就可以完美运行。