Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OOM SAMSUNG i9500 #556

Closed
ohshi000 opened this issue Aug 19, 2015 · 7 comments
Closed

OOM SAMSUNG i9500 #556

ohshi000 opened this issue Aug 19, 2015 · 7 comments

Comments

@ohshi000
Copy link

java.lang.OutOfMemoryError: Failed to allocate a 8294412 byte allocation with 2323870 free bytes and 2MB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:939)
at android.graphics.Bitmap.createBitmap(Bitmap.java:912)
at android.graphics.Bitmap.createBitmap(Bitmap.java:879)
at com.facebook.imagepipeline.memory.BitmapPool.alloc(BitmapPool.java:55)
at com.facebook.imagepipeline.memory.BitmapPool.alloc(BitmapPool.java:30)
at com.facebook.imagepipeline.memory.BasePool.get(BasePool.java:259)
at com.facebook.imagepipeline.bitmaps.ArtBitmapFactory.decodeStaticImageFromStream(ArtBitmapFactory.java:126)
at com.facebook.imagepipeline.bitmaps.ArtBitmapFactory.decodeFromEncodedImage(ArtBitmapFactory.java:92)
at com.facebook.imagepipeline.bitmaps.PlatformBitmapFactory.decodeFromEncodedImage(PlatformBitmapFactory.java:87)
at com.facebook.imagepipeline.decoder.ImageDecoder.decodeStaticImage(ImageDecoder.java:120)
at com.facebook.imagepipeline.decoder.ImageDecoder.decodeImage(ImageDecoder.java:91)
at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.doDecode(DecodeProducer.java:177)
at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.access$100(DecodeProducer.java:93)
at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder$1.run(DecodeProducer.java:121)
at com.facebook.imagepipeline.producers.JobScheduler.doJob(JobScheduler.java:207)
at com.facebook.imagepipeline.producers.JobScheduler.access$000(JobScheduler.java:27)
at com.facebook.imagepipeline.producers.JobScheduler$1.run(JobScheduler.java:78)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)

@plamenko
Copy link
Contributor

You are trying to allocate an 8MB Bitmap when there is only 2MB memory left. This usually happens because there are too many images displayed at once and/or the images are not properly resized. Please see Resizing.
If you provide us some more context about the app and the containers/layouts that host the DraweeView we may be able to be more specific.

@plamenko plamenko added the needs-details This issue or PR is currently not actionable as it misses details (e.g. for reproducing the problem) label Aug 19, 2015
@ohshi000
Copy link
Author

I resize the View. The image is local. still room. The most images "file://" and all "http" can resize .
but the screenshot.png can't resize.

ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
.setResizeOptions(new ResizeOptions(width, height))
.setAutoRotateEnabled(true)
.setLocalThumbnailPreviewsEnabled(true)
.setProgressiveRenderingEnabled(true)
.build();
PipelineDraweeControllerBuilder builder =
(PipelineDraweeControllerBuilder) mSimpleDraweeControllerBuilder;
controller = builder
.setAutoPlayAnimations(true)
.setCallerContext(callerContext)
.setOldController(this.getController())
.setImageRequest(request)
.build();

08-20 10:09:25.191 22964-22964/com.gridy.main E/1440036565197 LogConfigmain﹕ uri:file:///storage/emulated/0/screenshot.png
08-20 10:09:25.196 22964-22964/com.gridy.main E/1440036565199 LogConfigmain﹕ uri:file:///storage/emulated/0/screenshot.png
08-20 10:09:25.306 22964-22964/com.gridy.main E/1440036565312 LogConfigmain﹕ uri:file:///storage/emulated/0/screenshot.png
08-20 10:09:25.306 22964-22964/com.gridy.main E/1440036565314 LogConfigmain﹕ uri:file:///storage/emulated/0/screenshot.png
08-20 10:09:25.311 22964-22964/com.gridy.main E/1440036565315 LogConfigmain﹕ uri:file:///storage/emulated/0/screenshot.png
08-20 10:09:25.316 22964-22964/com.gridy.main E/1440036565319 LogConfigmain﹕ uri:file:///storage/emulated/0/Pictures/Screenshots/Screenshot_2015-08-12-17-10-06.png
08-20 10:09:25.401 22964-22964/com.gridy.main E/1440036565407 LogConfigmain﹕ uri:file:///storage/emulated/0/screenshot.png
08-20 10:09:25.406 22964-22964/com.gridy.main E/1440036565409 LogConfigmain﹕ uri:file:///storage/emulated/0/screenshot.png
08-20 10:09:25.501 22964-22964/com.gridy.main E/1440036565508 LogConfigmain﹕ uri:file:///storage/emulated/0/screenshot.png
08-20 10:09:25.506 22964-22964/com.gridy.main E/1440036565510 LogConfigmain﹕ uri:file:///storage/emulated/0/screenshot.png

@ohshi000
Copy link
Author

com.facebook.imagepipeline.memory.BasePool$PoolSizeViolationException: Pool hard cap violation? Hard cap = 100663296 Used size = 95376124 Free size = 0 Request size = 8294400
at com.facebook.imagepipeline.memory.BasePool.get(BasePool.java:240)
at com.facebook.imagepipeline.bitmaps.ArtBitmapFactory.decodeStaticImageFromStream(ArtBitmapFactory.java:124)
at com.facebook.imagepipeline.bitmaps.ArtBitmapFactory.decodeFromEncodedImage(ArtBitmapFactory.java:90)
at com.facebook.imagepipeline.bitmaps.PlatformBitmapFactory.decodeFromEncodedImage(PlatformBitmapFactory.java:87)
at com.facebook.imagepipeline.decoder.ImageDecoder.decodeStaticImage(ImageDecoder.java:125)
at com.facebook.imagepipeline.decoder.ImageDecoder.decodeImage(ImageDecoder.java:92)
at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.doDecode(DecodeProducer.java:184)
at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.access$200(DecodeProducer.java:96)
at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder$1.run(DecodeProducer.java:128)
at com.facebook.imagepipeline.producers.JobScheduler.doJob(JobScheduler.java:207)
at com.facebook.imagepipeline.producers.JobScheduler.access$000(JobScheduler.java:27)
at com.facebook.imagepipeline.producers.JobScheduler$1.run(JobScheduler.java:78)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:43)
at java.lang.Thread.run(Thread.java:818)
08-20 10:46:14.041 31692-31692/com.gridy.main E/unknown:﹕ Error loading 133

@ohshi000
Copy link
Author

PNG can't decode for method (setLocalThumbnailPreviewsEnabled) and I look up the all read the origin files.

@s1rius s1rius mentioned this issue Aug 22, 2015
@tyronen
Copy link
Contributor

tyronen commented Aug 25, 2015

PNG files can't be resized. You have to use downsampling instead. Follow the instructions at http://frescolib.org/docs/resizing-rotating.html#downsampling.

@tyronen tyronen closed this as completed Aug 25, 2015
@tyronen tyronen removed the needs-details This issue or PR is currently not actionable as it misses details (e.g. for reproducing the problem) label Aug 25, 2015
@ohshi000
Copy link
Author

Why can't support PNG images to resize? In fact PNG should be adapted.

@tyronen
Copy link
Contributor

tyronen commented Aug 27, 2015

Downsampling does the job better, actually - it's faster and can give you a smaller size than resizing can.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants