在尝试运行我相对较小的应用程序时,我不断地从堆空间内存错误中解脱出来。我在Gentoo上用8GB的ram运行eclipse。
这是我的eclipse.ini更改:
--launcher.XXMaxPermSize
1024m
-XX:MaxPermSize=2048m
-Xms512m
-Xmx8192m
我的Ant外部工具自定义JRE参数:
-Xms512m
-Xmx8192m
我还能做什么?我经常在日食日志中收到:
!ENTRY com.android.ide.eclipse.adt 4 0 2013-11-28 18:54:55.503
!MESSAGE Unable to execute dex: Java heap space
!STACK 0
java.lang.OutOfMemoryError: Java heap space
at java.util.BitSet.initWords(BitSet.java:164)
at java.util.BitSet.<init>(BitSet.java:159)
at com.android.dx.ssa.SsaMethod.bitSetFromLabelList(SsaMethod.java:137)
...
答案 0 :(得分:0)
最大可用RAM是8 GB吗? 如果是这样的话,你是否尝试减少Xmx?正如here所讨论的那样,这个边界是有原因的。将其设置为最大RAM并不是它背后的意图,可能会导致系统性能下降和其他繁琐的事情。尝试将Xmx设置为类似2048的东西。如果你得到OOM,慢慢走上那个边界。即使使用大型模型,我也不必分配8GB。
如果这没有帮助,您是否可以添加导致OOM的地方代码?
答案 1 :(得分:0)
不确定原因,但我已通过删除包含的Google API库解决了这个问题。我还删除了android-support-v4库,现在我的应用编译得很好。在我的构建路径中,我现在只有android库。