首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存不足错误

内存不足错误
EN

Stack Overflow用户
提问于 2010-04-26 13:37:34
回答 1查看 7.3K关注 0票数 1

我正在尝试从web服务检索图像和文本的列表。我首先使用Simple Adapter对图像进行编码,将其添加到列表中。图像正在显示应用程序显示错误,并且在Logcat中发生以下错误...

代码语言:javascript
复制
04-26 10:55:39.483: ERROR/dalvikvm-heap(1047): 8850-byte external allocation too large for this process.
04-26 10:55:39.493: ERROR/(1047): VM won't let us allocate 8850 bytes
04-26 10:55:39.563: ERROR/AndroidRuntime(1047): Uncaught handler: thread Thread-96 exiting due to uncaught exception
04-26 10:55:39.573: ERROR/AndroidRuntime(1047): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
04-26 10:55:39.573: ERROR/AndroidRuntime(1047):     at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
04-26 10:55:39.573: ERROR/AndroidRuntime(1047):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:451)
04-26 10:55:39.573: ERROR/AndroidRuntime(1047):     at com.stellent.gorinka.AsyncImageLoaderv.loadImageFromUrl(AsyncImageLoaderv.java:57)
04-26 10:55:39.573: ERROR/AndroidRuntime(1047):     at com.stellent.gorinka.AsyncImageLoaderv$2.run(AsyncImageLoaderv.java:41)
04-26 10:55:40.393: ERROR/dalvikvm-heap(1047): 14600-byte external allocation too large for this process.
04-26 10:55:40.403: ERROR/(1047): VM won't let us allocate 14600 bytes
04-26 10:55:40.493: ERROR/AndroidRuntime(1047): Uncaught handler: thread Thread-93 exiting due to uncaught exception
04-26 10:55:40.493: ERROR/AndroidRuntime(1047): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
04-26 10:55:40.493: ERROR/AndroidRuntime(1047):     at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
04-26 10:55:40.493: ERROR/AndroidRuntime(1047):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:451)
04-26 10:55:40.493: ERROR/AndroidRuntime(1047):     at com.stellent.gorinka.AsyncImageLoaderv.loadImageFromUrl(AsyncImageLoaderv.java:57)
04-26 10:55:40.493: ERROR/AndroidRuntime(1047):     at com.stellent.gorinka.AsyncImageLoaderv$2.run(AsyncImageLoaderv.java:41)
04-26 10:55:40.594: INFO/Process(584): Sending signal. PID: 1047 SIG: 3

下面是适配器中的代码...

代码语言:javascript
复制
final ImageView imageView = (ImageView) rowView.findViewById(R.id.image);
        AsyncImageLoaderv asyncImageLoader=new AsyncImageLoaderv();
        Bitmap cachedImage = asyncImageLoader.loadDrawable(imgPath, new AsyncImageLoaderv.ImageCallback() {
            public void imageLoaded(Bitmap imageDrawable, String imageUrl) {

                imageView.setImageBitmap(imageDrawable);
            }
            });
        imageView.setImageBitmap(cachedImage);

要加载图像...

代码语言:javascript
复制
public static Bitmap loadImageFromUrl(String url) {
            InputStream inputStream;Bitmap b;
        try {

            inputStream = (InputStream) new URL(url).getContent();
            BitmapFactory.Options bpo=  new BitmapFactory.Options();
            bpo.inSampleSize=2;
             b=BitmapFactory.decodeStream(inputStream, null,bpo );
             return b;
        } catch (IOException e) {
                throw new RuntimeException(e);
            }
           //return null;
     }  

请告诉我如何修复错误....

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-26 16:03:53

因为位图占用了太多内存,所以出现了OOM错误。看看这能不能帮上忙:Handling large Bitmaps。向下采样图像到其原始大小的一半可能仍然会导致图像对于运行时来说太大。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2711306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档