Image Loader中的OutOfMemoryError,App在android中崩溃

时间:2014-10-04 09:31:11

标签: android memory out-of-memory

我正在使用通用图像加载器类,有时应用程序崩溃并发出以下错误:

java.lang.java.lang.OutOfMemoryError: pthread_create (stack size 16384 bytes) failed: Try again in android: pthread_create (stack size 16384 bytes) failed: Try again 

非常感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

你的应用程序要么泄漏内存,要么分配太多对象,最终耗尽内存来创建线程。也可以在UIL中使用。

根据Universal Image Loader文档,如果是usage results in Out of Memory error you should try the below,引用...

  • 禁用内存中的缓存。如果仍然出现OOM,那么您的应用程序似乎有内存泄漏。使用MemoryAnalyzer检测它。否则请尝试以下步骤(所有这些步骤或几个步骤): 减少配置中的线程池大小(.threadPoolSize(...))。建议使用1 - 5.
  • 在显示选项中使用.bitmapConfig(Bitmap.Config.RGB_565)。 RGB_565中的位图消耗的内存比ARGB_8888少2倍。
  • 使用.imageScaleType(ImageScaleType.EXACTLY)
  • 在配置中使用.diskCacheExtraOptions(480,320,null)"

答案 1 :(得分:1)

因为你的文件大小过大。每次运行或加载它都会在堆栈中创建不同的空间。因此,如果可能,请尝试更改图像的大小。或者你可以使用以下命令,如果你使用3.x

的Android版本
android:largeheap="true"

将此代码写入应用程序标记下的清单文件中。

答案 2 :(得分:0)

感谢您的所有建议。 我犯的是愚蠢的错误,我在getView中实例化了ImageLoader对象。 所以因为outOfMemory发生了。