java.lang.OutOfMemoryError,应用程序无法在模拟器上运行

问题描述:

java.lang.OutOfMemoryError: Failed to allocate a 2560012 byte allocation 
with 1668568 free bytes and 1629KB until OOM 
at dalvik.system.VMRuntime.newNonMovableArray(Native Method) 
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:609) 
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:444) 
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1080) 
at android.content.res.Resources.loadDrawableForCookie(Resources.java:2635) 
at android.content.res.Resources.loadDrawable(Resources.java:2540) 

在我的平板电脑上完美运行,但在模拟器上出现此错误。有任何想法吗?java.lang.OutOfMemoryError,应用程序无法在模拟器上运行

我曾尝试加入

android:largeHeap="true" 

的清单,但它是一个没有去。

+2

分享代码。 – Pehlaj

+0

没有代码,只是一大堆xml上的可绘制对象 –

+0

请确保可绘制对象的质量不高 – Pehlaj

好了,所以这里是相同的细节, java.lang.OutOfMemoryError

public class OutOfMemoryError 
extends VirtualMachineError 

当Java虚拟机无法分配一个对象时抛出,因为它是内存不足,并没有更多的内存可由垃圾收集器提供。 OutOfMemoryError对象可以由虚拟机构造,就像抑制被禁用和/或堆栈跟踪不可写一样。 解决这些错误的方法: - 解决java中OutOfMemoryError的一个简单方法是通过使用JVM选项“-Xmx512M”来增加最大堆大小,这将立即解决您的OutOfMemoryError。 在Java中解决OutOfMemoryError的第二种方法相当困难,当您没有太多内存时,即使增加了最大堆大小后仍然得到java.lang.OutOfMemoryError,在这种情况下,您可能想要对应用程序进行配置文件并寻找任何内存泄漏。

了解更多:http://javarevisited.blogspot.com/2011/09/javalangoutofmemoryerror-permgen-space.html#ixzz4EUJfnfac