你知道为什么我在构建我的Android应用程序时在线程“main”java.lang.OutOfMemoryError:Java堆空间'错误中得到'异常,即使我添加了-vmargs -Xmx1024M -Xms512M到eclipse参数? 我想知道在构建时会发生什么错误会触发这样的错误,因为在我看来,只有eclipse或maven中的错误才会在构建时产生这样的错误。 我使用run作为maven install来构建我的应用程序(使用maven android eclipse插件)。运行as->在等待大约1分30后,'maven package'也会产生相同的构建失败。 我有一台3GB内存的台式电脑,而我的应用程序并不是那么大。
感谢。
答案 0 :(得分:8)
将-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/some/path
添加到您的jvm args中,以便在内存不足时将其转储出堆。然后,您可以使用Eclipse Memory Analyser或jhat
浏览堆并诊断问题所在的位置。
更新:尝试增加maven android插件的内存。在pom.xml
中,将Xmx
的JVM参数添加到插件配置中:
<plugin>
<artifactId>maven-android-plugin</artifactId>
<configuration>
<jvmArguments>
<argument>-Xmx1500m</argument>
</jvmArguments>
</configuration>
</plugin>
答案 1 :(得分:2)
您的Eclipse JVM参数无关紧要。你必须增加编译器的堆。
我引用了http://javahowto.blogspot.com/2006/06/fix-javac-java-lang-outofmemoryerror.html
如果您正在运行Eclipse,请进入Build.xml的“运行方式”对话框,并将-Xms256m -Xmx256m添加到“VM Arguments”文本框
答案 2 :(得分:1)
我遇到这种转换为Dalvik格式失败:无法执行dex:Java堆空间。增加eclipse.ini文件中的所有值都无济于事。在我将ADT插件从12升级到16之后发生了这种情况。我在升级之前更改了指向我现有项目的Android SDK(从我之前adt上连接的android sdks我将它们更改为android sdks这与我的新adt相关联,并且它为我解决了这个问题。希望这可以帮助。如果它有助于某人请投票加1。
答案 3 :(得分:0)
如果增加没有响应,那么我建议你检查你写的每个班级的行数。如果存在大量对象,则可能是编译器问题,因此如果一个或多个类具有3000多行,则尝试对方法进行分区和/或将它们复制到新类中。