我已将我的Xamarin.Android应用包MvvmCross
从5.3.2
更新为5.4
,并且应用在启动时开始崩溃。手动我发现原因是链接器 - 我启用了link SDK libs only
选项。使用None
选项,它可以很好地工作,但会生成两倍大的包。
' MvvmCross.Core.Platform.LogProviders.ConsoleLogProvider'的类型初始值设定项。抛出一个例外。 ---> System.NullReferenceException:未将对象引用设置为对象的实例
答案 0 :(得分:22)
这是MvvmCross 5.4中的已知错误,将在下一版本中修复。
与此同时,作为一种解决方法,您可以转到Setup
课程并覆盖GetDefaultLogProviderType
,以便它返回MvxLogProviderType.None
,如下所示:
protected override MvxLogProviderType GetDefaultLogProviderType()
=> MvxLogProviderType.None;
修改强>
由于提供商依赖于反思,如果您想将控制台提供程序与IMvxLog
一起使用,只需将其包含在LinkerPleaseInclude.cs
中:
using System;
//[...]
public void Include(ConsoleColor color)
{
Console.Write("");
Console.WriteLine("");
color = Console.ForegroundColor;
Console.ForegroundColor = ConsoleColor.Red;
Console.ForegroundColor = ConsoleColor.Yellow;
Console.ForegroundColor = ConsoleColor.Magenta;
Console.ForegroundColor = ConsoleColor.White;
Console.ForegroundColor = ConsoleColor.Gray;
Console.ForegroundColor = ConsoleColor.DarkGray;
}