6

情况:我在 Mac OS X 上有 android x86 加速模拟器。它正常启动(并显示HAX is working and emulator runs in fast virt mode行),我可以运行程序。程序启动后,模拟器会工作一段时间并冻结,所以我无法与之交互。

示例:如果我调用adb shell ls -l /sdcard/(或许多其他 adb 命令)控制台中不会打印任何内容,我必须按 control+C 来返回控制权。

模拟器重新启动问题消失后,它再次发生。

适用于非加速模拟器。仅在打开 HAXM 时工作错误。

我试过

  • 重新安装安卓SDK
  • 创建具有不同属性的模拟器
  • 在另一台mac机器上运行
  • 重启模拟器/电脑
  • 启用 64 位内核和扩展(已禁用)

我需要让模拟器一直工作(不仅仅是前 N 分钟)。

这不是这个问题的重复,因为:

  1. Mac OS X 版本低于 10.9,我无法使用 Intel 提供的修补程序
  2. 这里没有观察到崩溃
  3. 计算机不死机(但模拟器停止工作)
  4. 模拟器工作一段时间后发生冻结(最多 30 分钟)

可能与这个问题有关,但是

  1. 不能分析是不是同一个问题
  2. 那里没有有用的答案

系统信息:

型号标识符:iMac10,1

内存:8 GB

系统版本:Mac OS X 10.6.8 (10K549)

内核版本:达尔文10.8.0

HAXM 1.0.6 版

它符合英特尔的要求

支持的操作系统:

Mac OS X* 10.6 Snow Leopard 和 10.7 Lion(32/64 位)

进行设置我按照developer.android 的说明进行操作。我在 HAXM 安装期间分配了 2048 Mb,并创建了具有 512 Mb RAM 的模拟器。

期间有一些消息dmesg。历史:

1)模拟器启动后(有效)

Kext com.intel.kext.intelhaxm not found for unload request.
13

  possible map ffffffffffffffff cpu_online_map 3
haxm_error: fc_msr haxm_error: fc_msr 5
5
haxm_error: vt_enablhaxm_error: vt_enable e 1
haxm_error: nx_enable 1
haxm_error: nx_enable 2048
2048
haxm_error: ---- HAXM release 1.0.6 --------
haxm_error: This log collects runnging status of HAXM driver.

haxm_error: set memlimit 0x80000000

2)经过一段时间后(它仍然有效!)

23

 possible map ffffffffffffffff cpu_online_map 3
haxm_error: fc_msr h5
axm_error: fc_msr h5
ahaxm_error: vt_enable xm_error: vt_enable 1
1
haxm_error: nx_haxm_error: nx_enable ena2048
ble 2048
haxm_error: ---- HAXM release 1.0.6 --------
haxm_error: This log collects runnging status of HAXM driver.

.......hax_vm_create_ui 0
cvcpu 0x1d803000 vmid 0 vcpu_id 0
minor id 1000before the crate node
setup hax tunnel request for already setup one
haxm_error: hax_vm_alloc_ram: size 0x20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC
haxm_error: Memory allocation, va:123787000, size:20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: 
...........hax_teardown_vm
.......hax_vm_create_ui 0
cvcpu 0x1d585800 vmid 0 vcpu_id 0
minor id 1000before the crate node
setup hax tunnel request for already setup one
haxm_error: hax_vm_alloc_ram: size 0x20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC
haxm_error: Memory allocation, va:123637000, size:20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: 
...........hax_teardown_vm
.......hax_vm_create_ui 0
cvcpu 0x1d7a8800 vmid 0 vcpu_id 0
minor id 1000before the crate node
setup hax tunnel request for already setup one
haxm_error: hax_vm_alloc_ram: size 0x20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC
haxm_error: Memory allocation, va:123637000, size:20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000

3)模拟器挂起后

.......hax_vm_create_ui 0
cvcpu 0xf5e5000 vmid 0 vcpu_id 0
minor id 1000before the crate node
setup hax tunnel request for already setup one
haxm_error: hax_vm_alloc_ram: size 0x20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC
haxm_error: Memory allocation, va:123641000, size:20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000

请原谅我所有这些类似的日志,但我希望它们可以帮助诊断。我没有发现其他面临冻结的输出。

我在这里做错了吗?我可以以某种方式修复/解决这些冻结吗?

附言

$ top 
PID    COMMAND      %CPU TIME     #TH  #WQ  #POR #MREG RPRVT  RSHRD  RSIZE  VPRVT  VSIZE  PGRP  PPID  STATE    UID  FAULTS    COW     MSGSENT    MSGRECV    SYSBSD     SYSMACH   CSW        PAGEINS
35308  emulator64-x 99.9 93:35.44 2/1  1    67   114   13M    18M-   179M   297M   3459M  35303 35303 running  503  180922    477     134488     1390       604431027+ 1732      83769+     7
4

3 回答 3

1

不确定您是否仍然遇到此问题,但您使用的是旧版本的英特尔 HAXM。当前版本为:HAX 1.0.8 下载

我看到你的帖子,一直在崩溃。

在 Mac OSX 10.9 上跟踪 /var/log/system.log 时,我会看到您的上述消息。当我尝试重新安装 HAX 时,我会看到以下内容:

Aug 19 12:03:55 3c15c2cf84fe kernel[0]: haxm_error: -------- HAXM release 1.0.7 --------
Aug 19 12:03:55 3c15c2cf84fe kernel[0]: haxm_error: This log collects runnging status of HAXM driver.
Aug 19 12:03:55 3c15c2cf84fe kernel[0]: haxm_error: set memlimit 0x80000000

我能够通过删除我使用 Android Studio 创建的所有 AVD 来解决我的问题。从 AVD(Android 虚拟设备)只需“删除”虚拟设备中的所有模拟器。然后重新开始。

如果您收到以下错误:

在此处输入图像描述

请执行下列操作:

  1. 打开一个终端窗口。
  2. 类型:~/.android/avd
  3. 从这里通过以下命令删除所有内容: rm -rf
  4. 注意:您将删除运行它的路径中的所有内容。所有方法都很好: pwd <-- 打印工作目录,看看你将要删除什么。
  5. 再次启动 AVD 并重新创建所需的设备。

我希望这对某人有所帮助。

于 2014-08-19T19:25:07.190 回答
0

请确保您在安装期间为模拟器分配的内存始终大于您在创建模拟器实例时指定的内存。

于 2014-04-09T23:17:11.263 回答
0

我想检查机器上的 RAM 是否有故障。如果内存出现故障,则可能意味着数据丢失,模拟器不知道如何应对这种情况。CNET 在最近的这篇文章http://www.cnet.com/uk/how-to/how-to-test-the-ram-on-your-mac/中介绍了如何在 Mac 上测试内存

做扩展测试需要很长时间,但如果你想在这里找到问题,它确实需要排除。

于 2014-05-11T19:29:53.043 回答