【问题标题】:Failed to allocate memory: 8分配内存失败:8
【发布时间】:2013-02-19 09:15:04
【问题描述】:

从今天开始,当我尝试在 2.3.3 Android 平台上的 NetBeans 中运行应用程序时,它告诉我:

分配内存失败:8

此应用程序已请求运行时以不寻常的方式终止它。 请联系应用程序的支持团队了解更多信息。

模拟器不想启动。

这是我第一次看到它,谷歌对此没有任何答案,我尝试了两个版本的NetBeans 6.9.1和7.0.1,仍然是同样的错误。

【问题讨论】:

  • 只是好奇您为什么使用 NetBeans 与 Eclipse。我将 NetBeans 用于其他东西(即 php),但刚刚发现使用 eclipse 处理 android 东西更容易。您认为 eclipse 的优势是什么?
  • 我只是从没用过Eclipse,不知道为什么,我讨厌它,原因,它在GUI和NetBeans中什至复杂,但目前我正在下载它,尝试一下,如果问题消失了,我只会在里面做安卓的东西。
  • 哇,那个评论简直是逗号。无论如何,请确保您的 AVD 使用了适当数量的 RAM(即,足以运行但不超过您的计算机可以处理的数量)。这是在您创建虚拟设备时设置的。
  • 仅供参考,我有一个带有 16gb ram 的 Core i7,我的 AVD 上的 ram 已最大化,不幸的是它们都很滞后:/
  • 我有一台在 Intel core i7 处理器上运行的 Windows 8 64 位机器。我必须将此 AVD (Nexus 7) 的 ram 设置更改为 512mb 才能运行。

标签: android netbeans android-emulator


【解决方案1】:

我想通了。问题在于我为虚拟机指定的内存量,它是 1024MB,现在我有 512MB 还可以,现在我需要找到如何提高这个内存量,512 不是那么多,而且机器有点慢。

【讨论】:

  • 我也有同样的问题。我的机器上有 8GB 的​​ RAM,有 6GB 空闲,而 Android 模拟器告诉我它不能分配 1GB?
  • 我也有 8GB 的​​ Ram,但 SDK 告诉我不能使用超过 512 :)
  • 要添加更多修复。有时,将 RAM 设置为较低的值不起作用。在这种情况下,尝试使用类似emulator-x86 -avd <your_avd_name> 的命令行启动模拟器
  • 刚刚得到解决方案:需要强制指定 AVD 分辨率:800 x 1280。它按照我的要求启动我的 AVD
  • 问题来自任何在 config.ini 中将值 1024 添加到 hw.ramSize(GUI 的硬件列表中的 Device Ram Size)的显示皮肤。确保选择具有较低值的“皮肤”,或使用手动分辨率并从硬件列表中删除此行 - 选择皮肤时无法删除它。
【解决方案2】:

参考Android: failed to allocate memory 及其在已接受答案下的第一条评论,将“1024”更改为“1024MB”对我有帮助。可悲,但有效。

【讨论】:

  • 'MB' 无法被模拟器识别,强制它使用默认的 256 MB 值。请注意,您指定的金额不是您将获得的金额!
  • 查看应用程序,Runnning,列出的内存总量约为 240MB,所以它似乎恢复到 256MB。
  • 在运行配置窗口中添加参数 -memory 512 从这个链接为我修复了它
【解决方案3】:

就我而言:

  • 使用内置WXGA720模拟720p设备,总是报这个错误
  • 手动设置 AVD 分辨率为 720 x 1280,适合我

希望对你有帮助~

【讨论】:

  • 与此类似,7" WXGA800 的默认设置失败,设置 800 x 1280 有效。
【解决方案4】:

您在此处和其他地方阅读的所有其他内容纯属猜测。解决此问题的唯一可靠方法是为 bug report 投票。

问题与模拟器分辨率或 OpenGL 无关,也与您的计算机有多少内存无关。我的计算机中有 24GB 内存,大多数时候我使用hw.ramSize=1024 运行时出现错误 8。其他时候它工作得很好,无需任何配置更改。我希望你明白这一点:我根本没有改变模拟器配置,但有时它会运行,有时它会失败。

很有可能与内存碎片有关。我建议减少 hw.ramSize 的值作为临时解决方法。

【讨论】:

  • 恕我直言,您的回答也纯属猜想;对我来说,运行任何虚拟 RAM 设置高达 2048 的模拟设备都没有问题(我没有尝试更高)。但是,只有当我通过 远程桌面 访问我的机器时,这些设备才会运行。所以对我来说,这肯定是图形问题,而不是内存碎片问题。我可以通过在本地和远程之间来回切换会话来可靠地证明这一点。相同的会话,相同的 AVD 管理器实例,只是在一个场景中没有糟糕的 NVIDIA 卡和它们可怕的驱动程序。 (但这是对另一个线程的咆哮)。
  • 如果是“RAM 碎片”,我们可能可以使用其中一种愚蠢的免费“RAM 碎片整理”程序进行测试,对吧?
【解决方案5】:

改为使用 512 Mb。以上方法都不适合我。

【讨论】:

  • 将 RAM 大小从 1024 减少到 768 Mib 后,“分配内存失败:8”错误消失。
  • 他们中的许多人都在告诉同样的事情来修复 512 MB 的大小。但它根本没有用
【解决方案6】:

看起来有上千种不同的修复方法...以上都没有对我有用,但有效的是从命令行 emulator-arm.exe @AVD-NAME 启动 AVD em>

不知何故,如果仅使用 emulator.exe 启动,我会收到与尝试通过 Eclipse 启动时相同的错误消息。

【讨论】:

  • 你可能和我有同样的问题。当你从一个地方启动模拟器时,DLL 文件会被加载,如果你从另一个地方启动则不会。
【解决方案7】:

当您在正常模式下运行应用程序时,我意识到这个问题的解决方案源于 Eclipse 内存分配。我刚刚检查了 Eclipse 快捷方式属性下的“以管理员身份运行”框,现在它允许我为 AVD 分配更多内存。

希望对您有所帮助。

【讨论】:

    【解决方案8】:

    我已经通过更改设备屏幕尺寸解决了这个问题。

    我发现如果您指定 1024 mb 内存,那么您必须仅在 hdpi 中指定设备屏幕尺寸,如果它是 512 mb 内存,那么它应该是 mdpi 或其他。

    所以,我们可以清楚地说,内存大小应该根据屏幕大小来指定。如果您指定 1024 ram 大小同时将设备屏幕大小保持在 mdpi 中,则会导致上述错误,即“无法分配内存:8 此应用程序已请求运行时以不寻常的方式终止它。

    请联系应用程序的支持团队了解更多信息。"

    或

    在 AVD 管理器中进行如下选择:

    [2013-01-11 14:44:01 - SDK 管理器] hw.sensors.orientation=yes

    [2013-01-11 14:44:01 - SDK 管理器] hw.camera.front=none

    [2013-01-11 14:44:01 - SDK 管理器] hw.gps=yes

    [2013-01-11 14:44:01 - SDK 管理器] skin.dynamic=no

    [2013-01-11 14:44:01 - SDK 管理器] hw.keyboard=no

    [2013-01-11 14:44:01 - SDK 管理器] vm.heapSize=32

    [2013-01-11 14:44:01 - SDK 管理器] hw.ramSize=343

    【讨论】:

    • 这有效:[2015-07-23 12:54:59 - SDK Manager] disk.dataPartition.size=500M [2015-07-23 12:54:59 - SDK Manager] hw。 gpu.enabled=yes [2015-07-23 12:54:59 - SDK 管理器] hw.audioInput=yes [2015-07-23 12:54:59 - SDK 管理器] hw.sensors.orientation=yes [2015- 07-23 12:54:59 - SDK 管理器] hw.camera.front=none [2015-07-23 12:54:59 - SDK 管理器] hw.gps=yes [2015-07-23 12:54:59 - SDK 管理器] skin.dynamic=no [2015-07-23 12:54:59 - SDK 管理器] hw.keyboard=yes [2015-07-23 12:54:59 - SDK 管理器] vm.heapSize=32 [ 2015-07-23 12:54:59 - SDK 管理器] hw.ramSize=512
    【解决方案9】:

    我浏览了该线程中提到的所有其他解决方案,但没有发现任何有效的方法,所以我稍微摸索了一下。由于某种原因,Google 版本的 API 对我来说失败了。我把它改回香草,不再崩溃。

    我一定有其他问题,但也许这会对某人有所帮助......

    【讨论】:

    • 奇数。我被设置为香草版本,但将其切换到 Google API 解决了它。无论如何都要为这个想法 +1!
    【解决方案10】:

    看看官方issue 33930。有人指出,这可能与模拟器启动期间OpenGL的启动有关。其他人写道,只有在使用 WXGA800-skin 时才会崩溃,并建议手动将分辨率设置为 800x1280。

    此外,还提供了 ZIP 文件,用于手动将您的 android SDK 降级到版本 19,并将 plattform-tools 降级到版本 11。这也可能有助于暂时解决问题。

    【讨论】:

    • 这可能与我的问题有关。当你从一个地方启动模拟器时,DLL 文件会被加载,如果你从另一个地方启动则不会。
    • 肯定还有更多。首先将其设置为 WXGA800,然后将其更改为 1280x800 的手动分辨率仍然会使 AVD 崩溃。只有删除hw.ramSize=1024才能解决问题(如果选择了WXGA则不能这样做,您需要使用手动分辨率设置)。
    【解决方案11】:

    我的机器中有 16 GB 和 3.4 Ghz 四核 proc。虚拟机也不让我在 1024 运行它。我确实将它提高到 878MB,因为它在 880 处失败并显示相同的消息。这似乎是我可以分配给模拟器的最大内存。它仍然很慢,但我假设它比 512MB 更好。

    【讨论】:

      【解决方案12】:

      我从 AVD 的启动选项中更改了我的显示器 DPI 设置,并将其与我的显示器的原始和当前设置同步,并且它起作用了。

      【讨论】:

        【解决方案13】:

        我将存储大小设为 RAM 大小的 2 倍,并将 SD 存储大小与 RAM 大小相同。

        【讨论】:

          【解决方案14】:

          我遇到了同样的问题,但在我遇到问题之前,它要求我捕获视频源。

          我禁用了相机支持,我可以使用1024MB of RAM。

          使用 Windows 64bit, Xoom (Android 3.0)。

          【讨论】:

            【解决方案15】:

            就我而言,将屏幕分辨率从 WVGA720 更改为 WSVGA 对我有用。

            【讨论】:

              【解决方案16】:

              问题在于内存碎片。操作系统必须将您为 vm 指定的所有内存(例如 1Gb)分配为一个连续块。有时没有这样的块。要修复它,请关闭正在运行的程序,然后运行 ​​avd 并启动您的虚拟机。

              【讨论】:

                【解决方案17】:

                在 Windows 上对我有用的是:

                1) 关闭 Eclipse 2) 运行 Avd UI 3) 关闭所有正在运行的进程,尤其是内存大的进程,如 Chrome、explorer.exe 等 4)启动模拟器 5) 赢

                【讨论】:

                  【解决方案18】:

                  确保正确安装了 IntelHAXM。通过 SDK 管理器下载和“安装”它是不够的。您需要从以下位置手动安装它:

                  android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

                  另外,请确保您的 BIOS 中启用了英特尔虚拟技术。

                  按照developer.android.com 或Intel's installation instructions 上的指南进行操作。

                  【讨论】:

                    【解决方案19】:

                    您只需要编辑虚拟设备的内存,使其更低!试试 20 MB,它会起作用的!

                    【讨论】:

                      【解决方案20】:

                      我注意到它只与一个 avd 相关,其他所有我工作得很好的。我删除了它并创建了一个新的,现在它可以工作了。

                      【讨论】:

                        猜你喜欢
                        • 2014-03-03
                        • 2011-11-05
                        • 2012-07-24
                        • 2012-07-27
                        • 1970-01-01
                        • 2012-11-28
                        • 2016-05-01
                        • 2011-12-12
                        相关资源
                        最近更新 更多