【发布时间】:2017-11-09 05:49:57
【问题描述】:
我有几页图片。所有图像都是 静态:
<Image Source="logo.png" HorizontalOptions="Center" WidthRequest="200" Aspect="AspectFit" />
或绑定:
<Image Source="{Binding Image}" WidthRequest="40" HeightRequest="40" VerticalOptions="Center" />
我不通过代码绑定它们。
我从一个页面多次移动到另一个页面后,出现此异常
Xamarin 导致:java.lang.OutOfMemoryError: Failed to allocate a 9437196 字节分配,5765944 空闲字节和 5MB 直到 OOM dalvik.system.VMRuntime.newNonMovableArray(Native Method) 在 android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 在 android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:700)
在 android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:535) 在 android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:558) 在 android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:588)
我尝试在页面关闭后调用 GC.Collect(),但不起作用。
【问题讨论】:
-
您的图像文件似乎太大,需要更多内存。在配置文件中使用小图像或增加内存大小。检查以下链接:stackoverflow.com/questions/36835790/…
-
@PankajToshniwal ,我已经尝试增加内存大小 - 没有用。另外,所有图像最多800kb,我认为这不是大图像。我想存在内存泄漏,因为 OutOfMemory 不会立即发生,而是在一段时间后发生。
-
需要更多页面代码来调试。
-
尝试在清单文件中添加
-
使用 FFImageLoading 库:github.com/luberda-molinet/FFImageLoading/tree/master/source
标签: android xamarin bitmap xamarin.forms