Android Xamarin:内存不足问题

Android Xamarin:内存不足问题,android,memory,crash,xamarin,Android,Memory,Crash,Xamarin,我已经为Xamarin Android应用程序创建了一个包含丰富PNG图像的UI,大多数图像在AXML布局中以声明方式分配,大小从5 KB到100 KB不等,不幸的是,在运行应用程序并在活动之间导航一段时间后,应用程序崩溃,LogCat中出现如下内存问题的消息 02-14 21:01:34.856:E/dalvikvm堆(18277):4320016字节分配的内存不足 02-14 21:01:34.876:D/skia(18277):---缩放位图的分配失败 另外,当我使用Xamarin Pro

我已经为Xamarin Android应用程序创建了一个包含丰富PNG图像的UI,大多数图像在AXML布局中以声明方式分配,大小从5 KB到100 KB不等,不幸的是,在运行应用程序并在活动之间导航一段时间后,应用程序崩溃,LogCat中出现如下内存问题的消息

02-14 21:01:34.856:E/dalvikvm堆(18277):4320016字节分配的内存不足

02-14 21:01:34.876:D/skia(18277):---缩放位图的分配失败

另外,当我使用Xamarin Profiler监视应用程序时,我发现内存分配图表在启动活动时会上升,但在关闭活动时不会下降(尽管我使用Finish方法来关闭它),这意味着活动消耗的内存不会被释放


你知道问题出在哪里吗?

我们遇到了完全相同的问题,我们必须删除背景图像来解决它。我不确定Xamarin为什么没有收到有关此问题的错误报告。

我最近收到了错误报告,我通过调用
GC.Collect()
解决了问题,每当问题活动关闭时

在清单文件中添加以下行

android:largeHeap="true"

文件大小与此无关。我可以制作一个10K文件,它需要比1MB文件更多的RAM。位图的大小是多少?您是否在onStop()中循环使用位图?我假设位图的大小是指ImageView或使用图像的视图的大小,我使用许多图像作为背景,因此这就是所有屏幕大小,一些背景直接使用PNG文件,而另一些背景使用xml文件平铺PNG图像。这些图像是以声明方式分配给视图的,因此我不确定如何回收它们。高效显示可确保您的位图符合收集条件。你可以用弱引用更进一步。这只会暂时掩盖问题