OutOfMemoryError in Image Loader,应用程序在android中崩溃



我使用的是通用图像加载器类,有时应用程序崩溃后会出现以下错误:

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 

非常感谢你的帮助。

您的应用程序要么内存泄漏,要么分配了太多对象,最终耗尽了创建线程的内存。也可能使用UIL。

根据Universal Image Loader文档,如果其使用导致内存不足错误,您应该尝试以下操作,引用。。。

  • 禁用内存缓存。如果OOM仍然发生,那么你的应用程序似乎有内存泄漏。请使用MemoryAnalyzer进行检测。否则,请尝试以下步骤(全部或多个):减少配置中的线程池大小(.threadPoolSize(…))。建议使用1-5
  • 在显示选项中使用.bitmapConfig(Bitmap.Config.RGB_565)。RGB_565中的位图消耗的内存是ARGB_8888中的2倍
  • 使用.imageScaleType(imageScaleType.EACTLY)
  • 在配置中使用.diskCacheExtraOptions(480320,null)"

这是因为该图像的文件太重。每次运行或加载时,都会在堆栈中创建不同的空间。所以如果可能的话,尽量改变图像的大小。或者,如果您使用的是3.x 以上的android版本,您可以使用以下命令

android:largeheap="true"

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

感谢您的建议。我犯了一个愚蠢的错误,我在getView中实例化ImageLoader对象。因此,outOfMemory发生了。

最新更新