如何在我的Xamarin.Forms应用程序中启用大堆?
这是MainActivity.cs
的Android代码:
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
RoundedBoxViewRenderer.Init();
LoadApplication(new App());
}
}
请参阅下面的例外截图:
转到项目选项> Android Build>常规>启用MultiDex和选项> Android Build> Advacnced> JavaHeapSize(设置3G),在清单文件中,您可以在Application Tag中添加android:largeHeap =“true”
<application android:largeHeap="true"/>
Xamarin通过Appication
属性设置Dalvik / Art大堆的方法:
using System;
using Android.App;
using Android.Runtime;
namespace LargeHeap
{
[Application(LargeHeap = true)]
public class XamarinApplication : Application
{
public XamarinApplication(IntPtr handle, JniHandleOwnership ownerShip) : base(handle, ownerShip)
{
}
}
}
如果为true,则应使用大型Dalvik堆创建进程;否则,将使用默认的Dalvik堆创建该进程。
参考:https://developer.xamarin.com/api/property/Android.App.ApplicationAttribute.LargeHeap/
我的贡献,它对我有用:
[assembly:Application(LargeHeap = true)]
namespace Project.Droid
{
[Activity(.............)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
}
}