java堆空间

时间:2011-08-16 09:05:34

标签: java android eclipse maven

你知道为什么我在构建我的Android应用程序时在线程“main”java.lang.OutOfMemoryError:Java堆空间'错误中得到'异常,即使我添加了-vmargs -Xmx1024M -Xms512M到eclipse参数? 我想知道在构建时会发生什么错误会触发这样的错误,因为在我看来,只有eclipse或maven中的错误才会在构建时产生这样的错误。 我使用run作为maven install来构建我的应用程序(使用maven android eclipse插件)。运行as->在等待大约1分30后,'maven package'也会产生相同的构建失败。 我有一台3GB内存的台式电脑,而我的应用程序并不是那么大。

感谢。

4 个答案:

答案 0 :(得分:8)

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/some/path添加到您的jvm args中,以便在内存不足时将其转储出堆。然后,您可以使用Eclipse Memory Analyserjhat浏览堆并诊断问题所在的位置。

更新:尝试增加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多行,则尝试对方法进行分区和/或将它们复制到新类中。