我有一个非常简单的页面,上面有一些控件。我的问题仅出现在实际设备上,并且仅出现在运行 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 等)都仍然为空。(如果我在第一次运行后尝试在 1520 上启动应用程序而不进行调试,它会崩溃)
我在输出窗口中看不到任何内容表明其他领域存在挑战。知道为什么会这样吗?
更新更新:所以我重置了设备(我得到了相同的构建等)并再次尝试测试。我现在收到一些错误信息。以下是重现错误的步骤以及错误信息:
- 从设备上卸载任何以前版本的应用程序。
- 重启设备
- 在设备上测试应用程序。(它应该可以正常工作。)
- 在 Visual Studio 2015 环境中单击停止按钮
- 此时只需单击 Visual Studio 中的“运行”按钮,无需在应用程序中进行任何更改,它将在手机上正常启动。
- 在 Visual Studio 2015 环境中单击停止按钮
在应用程序的主页中进行更改并重新编译。确保 Build 行显示至少 1 个项目成功,而不是全部更新或跳过。
2 成功,0 失败,0 最新,2 跳过 ==========
- 再次在设备上运行应用程序。
在 LoadApplication 行生成错误,如下所示:
public sealed partial class MainPage
{
public MainPage()
{
this.InitializeComponent();
this.NavigationCacheMode = NavigationCacheMode.Required;
LoadApplication(new GBarScene.App());
以下是错误信息: Xamarin.Forms.Platform.WinRT.ni.DLL 中出现“System.ArgumentNullException”类型的异常,但未在用户代码中处理。
我单击查看详细信息并看到以下信息:“值不能为空。\r\n参数名称:newRoot”}
我希望这有助于解决这个问题。
更新:这个问题也发生在我升级到 Win 10 Mobile 的 Lumia 640 XL 上。