Android版Square/Picasso中可能存在内存泄漏

Android版Square/Picasso中可能存在内存泄漏,android,memory-leaks,picasso,Android,Memory Leaks,Picasso,我是开发商业媒体应用程序团队的一员。该功能的一部分是允许用户使用从Gallery或直接从Camera检索的自己的图像自定义ImageView的ViewGroup蒙太奇。我使用以下毕加索调用来完成此操作: mPicasso.load(uri) .resize(newWidth, newHeight) .into(container); 其中,mPicasso是毕加索的with(appContext()),newWidth和newHeight

我是开发商业媒体应用程序团队的一员。该功能的一部分是允许用户使用从Gallery或直接从Camera检索的自己的图像自定义ImageView的ViewGroup蒙太奇。我使用以下毕加索调用来完成此操作:

    mPicasso.load(uri)
            .resize(newWidth, newHeight)
            .into(container);
其中,mPicasso是毕加索的
with(appContext())
,newWidth和newHeight是根据源高度和宽度计算的尺寸,这样可以保持纵横比,并且生成的图像为1MP。通常,震源在8到16MP之间

如果我有一个蒙太奇,比如说,八个图片视图,然后我继续依次向每个视图添加图片,那么应用程序最终会崩溃。这个设备只有这么多内存,对吗?最终,如果你继续添加无限多的图像,你会用完的。然而,真正让我担心的是,该应用程序在替换八幅图像的过程中会中途崩溃。为了清楚起见,你已经添加了八张图片,你回到了顶部,开始用不同的图片替换这些图片,你大概得到了崩溃前的第四张

我本以为一旦图像被替换,旧的图像就会被清除。我可以通过将最大大小降低到100KP来解决这个问题,但问题是我想我只是在推迟崩溃。此外,用户有能力缩放图像,在如此低的分辨率下,它开始看起来非常快

我已经在这里发布了崩溃日志:- 因为在stackoverflow中直接粘贴太长了

如有任何解决方案/修复方案等建议,将不胜感激

(TemplateImageView.IsScaleInitialized中的崩溃点是应用程序试图将内存分配给九值浮点数组的地方:

float[] values = new float[9];
所以我猜这只是折断骆驼背的稻草)