MvvmCross 5.4使用NullRef在ConsoleLogProvider上启动app启动时崩溃

Ale*_*akh 5 linker xamarin.android mvvmcross xamarin

我已经更新了我Xamarin.Android的应用程序包MvvmCross来自5.3.25.4和应用程序启动崩溃的启动.手动我发现原因是链接器 - 我link SDK libs only启用了选项.使用该None选项它可以正常工作但是制作了两倍大的包.

'MvvmCross.Core.Platform.LogProviders.ConsoleLogProvider'的类型初始化程序引发了异常.---> System.NullReferenceException:对象引用未设置为对象的实例

Wil*_*osa 23

这是MvvmCross 5.4中的一个已知错误,将在下一个版本中修复.

在此期间,作为一种解决方法,您可以转到您的Setup类并覆盖,GetDefaultLogProviderType以便返回MvxLogProviderType.None,如下所示:

protected override MvxLogProviderType GetDefaultLogProviderType() 
    => MvxLogProviderType.None;
Run Code Online (Sandbox Code Playgroud)

编辑

由于提供商依赖于反射,如果您想使用控制台提供程序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;
}
Run Code Online (Sandbox Code Playgroud)