Xamarin.Forms Null Ref Exception仅在使用Xamarin实时预览时

时间:2017-11-08 13:55:01

标签: c# android

因此,这可能不是我的代码的实际问题,但Xamarin Live Preview应用程序不正确。我有一个非常小的表单项目,大多数硬编码实际上是一个.Net标准库,我作为Nuget包提供。我的核心课程有一个事件会在一切准备好进入课堂时触发。我原本以为null引用来自我的类​​的创建,然而,我发现了1行有所作为。注释掉事件订阅并且一切正常,此应用程序也可以在模拟器或Win10应用程序中正常工作。

查看您可能认为的所有代码我的SnappleApi对象是空引用,但在我的所有调试中它总是有一个值。反对这一点的另一个主要论点是模拟器/本地构建运行得很好。

Visual Studio没有看到任何错误,它从未在事件订阅之后点击任何内容。实时预览应用程序显示,"可视化错误:空引用异常"。

我在Forms项目中的启动代码:

public MainPage()
        {
            //Starts this bad boy up
            InitializeComponent();

            //Sets the seconds remaining equal to the initial auto refresh period
            SecondsRemaining = AutoRefreshInterval;


            //Builds the api that is used for calling upon the snapple facts
            SnappleApi = new SnappleEngie();
            //Setups the trigger that is fired when the facts are available for usage
            SnappleApi.OnFactsLoaded += FactsAvailable;
        }

该事件代码是什么样的:

private void FactsAvailable(object sender, bool isReload)
        {
            UpdateFact();

            if (SnappleApi.HasFacts)
            {
                //Start auto fact ticker
                AutoFactTimer = new Timer(AutoFactTick, null, 0, (int)TimeSpan.FromSeconds(1).TotalMilliseconds); 
            }
        }

最后UpdateFact代码是什么样的:

private void UpdateFact()
        {
            Device.BeginInvokeOnMainThread(new Action(() =>
            {
                if (SnappleApi.HasFacts)
                {
                    FactText.Text = GetNewRandomFact().ToString();
                }
                else
                {
                    FactText.Text = "There was an error loading facts from the Snapple Servers.";
                }
            }));
        }

0 个答案:

没有答案