首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InitializeComponent挂起

InitializeComponent挂起
EN

Stack Overflow用户
提问于 2017-05-18 00:04:35
回答 3查看 2.1K关注 0票数 1

我正在使用VisualStudio2017在C#中创建默认的项目。如果在中出现任何错误,则InitializeComponent()调用挂起。没有编辑器、编译器、构建器或运行时错误.有没有办法研究错误的原因?我很确定2015抛出了一个运行时错误。

下面是一个引用缺失样式的示例。这会导致InitializeComponent()挂起。我正在使用VisualStudio_Android-23x86_phone仿真器,VS对我尝试过的每个模拟器以及三星Note 4都做同样的事情。谢谢。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:Broken"
             x:Class="Broken.MainPage">
    <Label Text="Welcome to Xamarin Forms!" 
           VerticalOptions="Center" 
           HorizontalOptions="Center"
           Style="{StaticResource myStyle}"/>

</ContentPage>
EN

回答 3

Stack Overflow用户

发布于 2017-05-18 14:57:52

答案非常简单。将InitializeComponent放入尝试/捕捉中。即使当InitializeComponent检测到XAML解析错误时不返回,您也可以捕获异常,并且ex.message是有用的。

代码语言:javascript
复制
try
            {
                InitializeComponent();
            }
            catch (Exception ex)
            {
                throw ex;
            }

显示消息"Xamarin.Forms.Xaml.XamlParseException: Position 9:12. StaticResource not for key myStyle“。我没有料到这一例外会被抓住,但我偶然地错了。

感谢斯蒂芬恩的“燕子”线索。

票数 5
EN

Stack Overflow用户

发布于 2017-05-18 03:56:18

您可以使XAML编译在编译时而不是运行时捕获XAML错误。

票数 0
EN

Stack Overflow用户

发布于 2017-05-18 09:12:49

如果您的XAML中有错误,则会引发异常。问题是Android经常吞下导致崩溃的异常。

当抛出XamlParseException时,您可以尝试破坏。这应该能让你在坠机前说到重点。

正如您所理解的,XAML不是在编译时验证,而是只在运行时进行验证。但是,如果打开XamlC (https://developer.xamarin.com/guides/xamarin-forms/xaml/xamlc/),(大部分)解析错误将在编译时发现。而这并不是使用XamlC的唯一理由。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44036565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档