【问题标题】:Xamarin bitmap out of memoryXamarin 位图内存不足
【发布时间】: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 不会立即发生,而是在一段时间后发生。
  • 需要更多页面代码来调试。
  • 尝试在清单文件中添加

标签: android xamarin bitmap xamarin.forms


【解决方案1】:
  • 尝试增加您的项目堆大小。

右键单击您的 Android 项目 > 属性 > Android 选项 > 高级 > Java 最大堆大小 > 设置 1G

  • 在导航到另一个页面之前尝试调用 GC.Collect()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-04
    • 2013-05-08
    • 2013-08-25
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 2015-04-15
    相关资源
    最近更新 更多