【发布时间】:2011-11-03 15:46:00
【问题描述】:
在我的应用程序中,我正在从服务器下载图像。下载 40 多张图片后出现以下错误:
11-03 20:16:17.185: W/dalvikvm(12081): threadid=10: thread exiting with uncaught exception (group=0x40015560)
11-03 20:16:17.185: E/AndroidRuntime(12081): FATAL EXCEPTION: Thread-41
11-03 20:16:17.185: E/AndroidRuntime(12081): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
11-03 20:16:17.185: E/AndroidRuntime(12081): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
11-03 20:16:17.185: E/AndroidRuntime(12081): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:470)
11-03 20:16:17.185: E/AndroidRuntime(12081): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:336)
11-03 20:16:17.185: E/AndroidRuntime(12081): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
11-03 20:16:17.185: E/AndroidRuntime(12081): at android.graphics.drawable.Drawable.createFromStream(Drawable.java:657)
11-03 20:16:17.185: E/AndroidRuntime(12081): at com.twintechs.bl.ImageLoader.downloadDrawable(ImageLoader.java:25)
11-03 20:16:17.185: E/AndroidRuntime(12081): at com.twintechs.itsr.LatestActivity$10.run(LatestActivity.java:332)
有什么想法吗?
【问题讨论】:
-
显然你内存不足...??
-
您是将它们下载到内存还是 SD 卡?
-
实际上,我每次浏览显示 18 张图片。当用户点击更多时,屏幕上会显示另外 18 个图像。我将这些图像以 ImageView 和 Drawable 对的形式存储在 ArrayList 中。我没有存储在 SD 卡上。
-
我正在使用以下代码下载图片: URL url = new URL(imageUrl); HttpURLConnection 连接 = (HttpURLConnection) url.openConnection();连接.setDoInput(true);连接.setConnectTimeout(7000);连接.连接(); BufferedInputStream is = new BufferedInputStream(connection.getInputStream()); imageDrawable = Drawable.createFromStream(is, imageUrl);
标签: android image exception memory download