C# 在Xamarin中获得OutOfMemoryException
java.lang.OutOfMemoryError。考虑增加价值 $(JavaMaximumHeapSize)。Java在执行时内存不足 “java.exe”C# 在Xamarin中获得OutOfMemoryException,c#,visual-studio,xamarin,xamarin.android,C#,Visual Studio,Xamarin,Xamarin.android,java.lang.OutOfMemoryError。考虑增加价值 $(JavaMaximumHeapSize)。Java在执行时内存不足 “java.exe” 我的visualstudio Xamarin项目出现内存不足异常。请帮助我如何解决此问题。我会增加生成堆的大小 右键单击您的Android项目>属性Android选项高级Java最大堆大小 如果要增加应用程序的堆大小(而不是构建过程),可以在AndroidManifest.xml中设置: <application android:
我的visualstudio Xamarin项目出现内存不足异常。请帮助我如何解决此问题。我会增加生成堆的大小 右键单击您的Android项目>属性Android选项高级Java最大堆大小
如果要增加应用程序的堆大小(而不是构建过程),可以在AndroidManifest.xml中设置:
<application android:largeHeap="true"></application>
对于visual studio 2015,右键单击项目-->属性-->Android选项-->高级和堆大小。从Xamarin studio 6.3版和visual studio 7.0.1开始,可以在此处找到增加堆大小的选项
右键单击android项目,然后选择options并选择Build/android Build,然后选择Advanced选项卡,并在Java堆大小中设置1G(或其他)
所选答案将引导我走向正确的方向,但对于Visual Studio 2017,屏幕看起来如下所示:
增加java最大堆大小对我来说很有效
当1G堆大小用完时,开始优化资源 首先检查您是否正在复制映像实例,并在内存中多次保留相同的映像。为此,请使用fImageLoadingLibrary()在nuget上快速轻松地获取它 然后优化您正在使用的图像。对于大图像,而不是图标,尝试将所有内容转换为jpeg格式,避免使用带有透明度的png格式,这曾经为我保存了恒定的OOM格式 然后尝试使用缩略图,而不是图像时,您可能有大型上传的图像远程。在您的服务器上为不同大小(迷你、小型、中型、普通、大型、xlarge等)预先创建缩略图,并仅加载您真正需要的大小的图像。这节省了大量内存和速度 另一个是内存泄漏。如果单元格或其他元素没有取消订阅消息、事件处理程序和其他内容,则它们可能仍驻留在im内存中。想象一下,当你确信这不可能发生时,你可以在内存中保存一个满是图像的列表的多个副本。更多信息请点击此处:
我已经修复了在AndroidManifiest.xml的应用程序标记中添加以下内容的问题
<application android:largeHeap="true" android:label="sample"></application>
根据我的经验,内存问题只发生在android版本的Xamarin.Forms应用程序上。而且它总是要处理大尺寸的图像。我使用ffimageload()处理了这个问题 替换你的
<Image Source="waterfront.jpg" />
与
您将看到性能上的巨大改进,它还将解决您的内存问题 是的,你的权利。但是在visual studio xamarin中,我在哪里可以增加我的应用程序大小。@SrinivasCh在你的清单中添加
android:largeHeap=“true”
标记,然后查看你的logcat
,查看Grow heap(frag case)
以查看ART何时尝试分配更多内存。谢谢你的回复@lainSmith@SushiHangover啊好,,我以前有过这个错误,只是在这里增加了堆,但是如果你想使用一个大的堆,那么编辑manifes@Srinivas-我不担心,我建议不要只将LargeHeap设置为true。相反,您应该尝试找出导致OOM的原因并修复它。否则,可能会为您赢得一些时间,直到它再次击中您。请做到:左键单击。Droid-->双击“属性”-->单击左侧的“Android选项”-->单击“高级”选项卡-->“Java最大堆大小”
<ffimageloading:CachedImage Source="waterfront.jpg"
DownsampleToViewSize = true,
BitmapOptimizations = true/>