Xamarin Forms InitalizeComponent调用不初始化页面控件

时间:2017-01-30 21:05:48

标签: xamarin.forms nullreferenceexception argumentnullexception initializecomponent xamarin.winphone

我有一个非常简单的页面,上面有一些控件。我的问题只发生在实际设备上,只发生在运行Win10 Mobile版本1607 Build 10.0.14946.1000的Lumia 1520上。在运行Win10 Mobile版本1607 OS Build 10.0.14393.693的Lumia 950上不会发生这种情况。

在1520上,我取消安装我的应用程序,重新启动设备,然后尝试在设备上调试应用程序。一切正常。然后我停止调试并尝试再次开始调试,我的页面的InitializeComponent方法没有初始化我的任何控件。

这意味着在此代码运行后:

    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Forms.Build.Tasks.XamlG", "0.0.0.0")]
    private void InitializeComponent() {
        this.LoadFromXaml(typeof(nearbyplaces));
        pgHeader = this.FindByName<global::GBarScene.pageheader>("pgHeader");
        lblPlacesTitle = this.FindByName<global::Xamarin.Forms.Label>("lblPlacesTitle");
        btnMapAll = this.FindByName<global::Xamarin.Forms.Label>("btnMapAll");
        lblDataSource  = this.FindByName<global::Xamarin.Forms.Label>("lblDataSource ");
        btnUseGPS = this.FindByName<global::Xamarin.Forms.Image>("btnUseGPS");
        lblRatingsFor = this.FindByName<global::Xamarin.Forms.Label>("lblRatingsFor");
        lblDowName = this.FindByName<global::Xamarin.Forms.Label>("lblDowName");
        bvUnderline = this.FindByName<global::Xamarin.Forms.BoxView>("bvUnderline");
        lvPlaces = this.FindByName<global::Xamarin.Forms.ListView>("lvPlaces");
    }

每个控件(psHeader,lvPlaces等)都是null。 (如果我第一次运行它后尝试在1520上启动应用程序而不进行调试,则会崩溃)

我看到输出窗口中没有任何内容表明其他区域存在挑战。知道为什么会这样吗?

更新更新: 所以我重置了设备(我有相同的构建等)并再次尝试测试。我现在收到一些错误信息。以下是重现错误的步骤以及错误信息:

  1. 从设备中卸载任何以前版本的应用程序。
  2. 重启设备
  3. 在设备上测试应用。 (它应该可以正常工作。)
  4. 单击Visual Studio 2015环境中的“停止”按钮
  5. 此时只需单击Visual Studio中的“运行”按钮而不在应用程序中进行更改,它将在手机上正常启动。
  6. 单击Visual Studio 2015环境中的“停止”按钮
  7. 在应用程序的主页面中进行更改并重新编译。确保构建行显示至少1个项目成功,而不是全部更新或跳过。

    2成功,0失败,0最新,2跳过==========

    1. 再次在设备上运行该应用程序。
  8. 在下面显示的LoadApplication行中生成错误:

    public sealed partial class MainPage
    {
        public MainPage()
        {
            this.InitializeComponent();
    
            this.NavigationCacheMode = NavigationCacheMode.Required;
    
            LoadApplication(new GBarScene.App());
    

    以下是错误信息:     类型&#39; System.ArgumentNullException&#39;的例外情况发生在     Xamarin.Forms.Platform.WinRT.ni.DLL但未在用户代码中处理。

    我点击查看详细信息,我看到以下信息:     &#34;值不能为空。\ r \ n参数名称:newRoot&#34;}

    我希望这有助于解决此问题。

    更新: 我的Lumia 640 XL升级到Win 10 Mobile也会出现问题。

0 个答案:

没有答案