Android 获取渐变错误“;无法为对象堆保留足够的空间;在Intellij理念中不断
所以我有一个内存分配问题。有时有效,有时无效。我已经在那里多次阅读并尝试过这个建议。有时Android 获取渐变错误“;无法为对象堆保留足够的空间;在Intellij理念中不断,android,cordova,intellij-idea,gradle,visual-studio-2015,Android,Cordova,Intellij Idea,Gradle,Visual Studio 2015,所以我有一个内存分配问题。有时有效,有时无效。我已经在那里多次阅读并尝试过这个建议。有时-Xms512m-Xmx768m起作用,有时-Xms256m-Xmx512m。我厌倦了在IntelliJ中的构建、执行、部署>构建工具>渐变>渐变VM选项设置下调整此设置。没有一个设置可以一劳永逸地解决这个问题吗 我的Windows 7计算机上有16GB的RAM,我正在运行IntelliJ IDEA EAP 14 build 138.2210.3,64位版本。Android Gradle构建插件v0.12 我
-Xms512m-Xmx768m
起作用,有时-Xms256m-Xmx512m
。我厌倦了在IntelliJ中的构建、执行、部署>构建工具>渐变>渐变VM
选项设置下调整此设置。没有一个设置可以一劳永逸地解决这个问题吗
我的Windows 7计算机上有16GB的RAM,我正在运行IntelliJ IDEA EAP 14 build 138.2210.3,64位版本。Android Gradle构建插件v0.12
我怀疑gradle没有在64位模式下运行,否则它将有约7GB的可用内存。为什么不利用这个呢
编辑:
我在VisualStudio2015中,在Windows10下使用Cordova5.1.1时遇到了相同的错误。
请参阅下面我的解决方案。安装64位Java为我解决了这个问题在我的情况下,打开的东西太多了。释放内存使它工作。这也发生在我身上,让我发疯。可能是可用的内存(ram)是碎片化的。虽然您有足够的可用内存,但没有连续的512MB块可用,它都被分割成更小的块!这就是为什么你只能“有时”看到它 有些事情值得一试:
- 检查内存是否不足,尝试关闭其他应用程序。这种情况有时会发生在我身上,即使我的8GB中还有一个很好的3GB空闲空间!3GB可以分为小于512MB的块[例如:如果有-Xmx512m]。。。重新启动是一种整理内存碎片的方法。或者关闭firefox,这将释放一个gig;-)
- 另外,令人惊讶的是,请检查您的交换空间[可用磁盘空间]!取决于机器/JVM/etc实现的类型。但是,如果交换空间不足,并且内存碎片化,这可能是另一个原因
- 将-Xmx降低到-Xms128m-Xmx512m,以便更容易找到连续的可用内存块[128m]。如果gradle真的至少需要5.12亿美元,这可能不是个好主意。考虑到我们谈论的是gradle,忽略这一要点(可能是其他案例的有用提示/值得注意)
- 在~/.gradle/gradle.properties属性org.gradle.jvmargs中仔细检查Xms/Xmx
- 使用idea64.exe[64位],如果您认为IDEA使用了错误的JDK[32位],在最新的Intellij IDEA[14.1.3]中,请转到“设置”->“构建、执行、部署”->“Gradle”:“使用默认包装器”并选择您喜欢的Gradle JVM(如果您认为它使用了错误的JVM,您将在此处看到它)
- 最后,这只是一个猜测:在前面的项目中,我想知道您是否选择了“使用JDK项目”",如果这样可以更容易地找到连续内存。我不确定这是否意味着Gradle将使用intellij IDEA已经保留的内存块。因此,您没有两个进程,而是只有一个进程,并且可以在IDEA启动时保留一个更大的内存块。但我不确定这是否准确,这是否是建议intellij的一个选项
我同意你的看法,在gradle集成出现之前,我从来没有遇到过IDEA的内存问题[完全没有问题]。虽然这个问题有点老,但我想提出问题的(可能的)根源:JVM在启动时请求一整块内存。如果找不到,则“无法保留…”出现错误。John Pape在IBM的devblog上写了一篇关于此问题的启发性文章: 这为我解决了问题:
- 变体a:使用64位版本的Java,以便为Java提供更大的可用连接内存
- 变量b:32位Java使用较小的XMX数量。在gradle.properties文件中,我只使用
,gradle没有问题org.gradle.jvmargs=-Xmx150m
_JAVA_OPTIONS=-Xmx512M
希望它能帮助别人!在您的android文件夹中有一个gradel.properties文件,并添加以下行:
org.gradle.jvmargs=-XX\:MaxHeapSize\=256m -Xmx256m
我在使用Intellij和Flatter时遇到了这个问题。另外,您可能会发现添加的另一个有用属性是声明JDK的位置
org.gradle.java.home=C:\\Your\\JDK\\path
谢谢!这个答案刚刚帮助我升级了Android Studio的新版本。谢谢,+1。这个答案解决了在Windows上使用Apache Cordova时的类似问题。谢谢Bjoerg,+1,太好了。解决了我在Windows上使用Cordova时的问题。+1这个解决方案对我来说适用于Ionic 3.5.0和Windows10@nilzor、JDK或JRE?我安装了32位和64位d和32位版本在路径中。