Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Studio-如何增加分配的堆大小_Android_Memory Management_Crash_Out Of Memory_Android Studio - Fatal编程技术网

Android Studio-如何增加分配的堆大小

Android Studio-如何增加分配的堆大小,android,memory-management,crash,out-of-memory,android-studio,Android,Memory Management,Crash,Out Of Memory,Android Studio,我已经使用安卓工作室3个月了,其中一个应用程序已经相当大了。程序右下角显示的内存使用情况表明我分配的堆最大为494M 当我开始更改XML文件时,我的内存使用量很快就达到了上限,IDE崩溃了,出现了这样的内存不足错误 我曾尝试使用此方法增加堆大小,但到目前为止没有效果 我看了几十篇关于如何增加堆大小的文章和其他问题,但他们的答案都不起作用。无论我对VMOPTIONS或IDE设置做了什么,堆大小都不会增加。我相信我正在为VMOPTIONS编辑正确的文件,因为如果我故意给它一个无效的命令,andr

我已经使用安卓工作室3个月了,其中一个应用程序已经相当大了。程序右下角显示的内存使用情况表明我分配的堆最大为494M

当我开始更改XML文件时,我的内存使用量很快就达到了上限,IDE崩溃了,出现了这样的内存不足错误

我曾尝试使用此方法增加堆大小,但到目前为止没有效果

我看了几十篇关于如何增加堆大小的文章和其他问题,但他们的答案都不起作用。无论我对VMOPTIONS或IDE设置做了什么,堆大小都不会增加。我相信我正在为VMOPTIONS编辑正确的文件,因为如果我故意给它一个无效的命令,androidstudio会对此抱怨,并且不会启动

我使用的是Windows7-64位,内存为16GB。
还有其他人在Android Studio中遇到过这个问题吗?你能修好它吗

我查看了我的环境变量,得到一个名为
\u JAVA\u OPTIONS
的系统变量,其值为
-Xms256m-Xmx512m
,将其更改为
-Xms256m-Xmx1024m
后,最大堆大小相应增加

或者,您可以转到您的
android studio\bin
文件夹,在
studio.exe.vmoptions
studio64.exe.vmoptions
文件中更改这些-Xmx和-Xms值(取决于您正在运行的版本)。

我尝试了“JAVA\u选项”的方法,但仍然不起作用

最后,对我起作用的是:

  • 启动studio64.exe而不是studio.exe(我有一台64位的机器)
  • 在“studio64.exe.vmoptions”中添加/更改以下值:
-Xms2048m
-Xmx2048m
-XX:MaxPermSize=1024m
-XX:+CMSClassUnloadingEnabled
-XX:+cms已启用
-XX:+HEAPDUMPONAUTOFMEMORYERROR

-Dfile.encoding=utf-8
在我使用XML时,这个
Xms
Xmx
内存不足的问题总是发生在我身上。我也试着增加这种记忆,结果发现它只是花了一点时间才再次发生

在感到非常沮丧并几乎决定将当前所有的项目都转换回Eclipse(我不想这样做)之后,我找到了导致它的原因,并且能够重复这个失败并防止每次都发生

在(文本视图)中编辑XML并使用“预览”渲染视图时,每次都会导致内存丢失。关闭“预览”并使用“设计”选项卡仅渲染屏幕,我可以全天使用Android Studio,不会崩溃


我希望这可以永久解决,因为在编辑XML时使用“预览”渲染会非常好,但是我很高兴我可以继续使用Android Studio。

打开Studio.vmoptions并更改JVM选项

-Xmx6g
studio.vmoptions位于/Applications/Android\studio.app/bin/studio.vmoptions(Mac OS)。在我的机器里,它看起来像

-Xms128m
-Xmx800m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=64m
-XX:+UseCodeCacheFlushing
-XX:+UseCompressedOops
改为

-Xms256m
-Xmx1024m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=64m
-XX:+UseCodeCacheFlushing
-XX:+UseCompressedOops
然后重新启动Android Studio

请参阅更多信息

----编辑-------- Android Studio 2.0及以上版本,您可以通过从“帮助”菜单访问“编辑自定义VM选项”来创建/编辑此文件

-------原始答案-------- 打开位于的文件

/Applications/Android\ Studio.app/Contents/bin/studio.vmoptions
将内容更改为

-Xms128m
-Xmx4096m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=200m
-XX:+UseCompressedOops
Xmx
指定Java虚拟机(JVM)的最大内存分配池,而
Xms
指定初始内存分配池。JVM将以
Xms
内存量启动,并且将能够使用最大
Xmx
内存量

保存
studio.vmoptions
文件并重新启动Android studio

注:
如果更改了IDE的堆大小,则必须在应用新内存设置之前重新启动Android Studio。()

在Windows 7上,
[INSTALL-LOCATION]\bin
中的配置文件似乎被忽略。根据以下Google文档,要修改的文件应该在这里:
%USERPROFILE%\.AndroidStudio\studio[64].exe.vmoptions

奇怪的是,在开发者网站上干净地安装了Android Studio 1.1之后,却没有这样的文件。它们位于旧的(被忽略的)位置。一旦我复制了文件(
studio.exe.vmoptions,在我的例子中是
),并对其进行了修改,更改将得到尊重

然而,乐趣并不止于此。
-Xmx
有一个上限值,它可能与系统中的内存量有关。我只是将我的机器内存从4Gb猛增到16Gb,并假设我可以将
-Xmx
设置为
2048m
,但我发现如果我将其设置为大于
1500m的任何值,
Android Studio将在没有任何说明原因的情况下无声地无法启动。我有更多的内存在路上,所以它将是有趣的,看看我是否可以增加在这一点上的价值


我希望这些额外的信息是有帮助的。虽然上述所有回复在某一点上都是毫无疑问的正确(在某些环境中可能仍然如此),但我发现这是唯一一种增加AS for me使用内存的方法。

在下一篇谷歌文档之后,我增加了内存:

默认情况下,Android Studio的最大容量为750Mb,我改为2048Mb

我尝试了谷歌描述的方法,但对我来说,唯一有效的方法就是使用环境变量。我将描述我所做的:

首先,我创建了一个名为.AndroidStudioSettings的目录

  • mkdir.AndroidStudioSettings
然后我创建了一个名为studio.vmoptions的文件,并将以下内容放入该文件中:

-Xms256m 
-Xmx2048m 
-XX:MaxPermSize=512m 
-XX:ReservedCodeCacheSize=128m 
-XX:+UseCompressedOops 
然后,我在我的.profile文件中添加了STUDIO_VM_OPTIONS环境变量:

  • export STUDIO\u VM\u OPTIONS=/Users/youruser/.AndroidStudioSettings/STUDIO.vmoptions
然后重新加载我的.profile:

  • sourc
    
    `org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m`
    
    -Xms128m
    -Xmx2048m
    -XX:MaxPermSize=350m
    -XX:ReservedCodeCacheSize=64m
    -XX:+UseCodeCacheFlushing
    -XX:+UseCompressedOops
    
    -Xmx6g
    
    -Xms128m
    -Xmx4096m
    -XX:MaxPermSize=1024m
    -XX:ReservedCodeCacheSize=200m
    -XX:+UseCompressedOops
    
    -Xms128m
    -Xmx4096m
    -XX:MaxPermSize=1024m
    -XX:ReservedCodeCacheSize=200m
    -XX:+UseCompressedOops