2017-05-18 8 views
1

私はVisual Studio 2017を使用して、C#でデフォルトのXamarin Forms PCLプロジェクトを作成しています。 XAMLでエラーが発生すると、InitializeComponent()呼び出しがハングします。エディタ、コンパイラ、ビルダー、またはランタイムエラーはありません。エラーの原因を調べる方法はありますか?私はVisual Studio 2015が実行時エラーを投げたことを確信しています。xamarinフォームInitializeComponentがハングする

ここでは、欠落しているスタイルの例を示します。これにより、InitializeComponent()がハングします。私はVisualStudio_android-23_x86_phoneエミュレータを使用しています.VSは、私が試したすべてのエミュレータと私のSamsung Note 4についても同じことをしています。ありがとう。

<?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> 
+0

エラーは何ですか? – Adam

+0

私は同じ問題を抱えています。 apがハングアップするだけでなく、IDE全体にも問題があります。これが起こるたびに、IDEは私の(仮想)CPUコアの1つを抱き始めます。私はVisual Studioを再起動するまで、アプリケーションがもう実行されていなくても、8回実行すると100%CPU使用率があります。 : –

答えて

0

XAML Compilationは、ランタイムではなくコンパイル時にXAMLでエラーをキャッチできるようにすることができます。

+1

XAMLコンパイラはエラーをキャッチしていません(キャッチしているかもしれませんが、これはありません) – user1813319

0

XAMLにエラーがある場合、例外がスローされます。問題はAndroidがしばしばクラッシュの結果として例外を飲み込むということです。

XamlParseExceptionがスローされたときに中断することができます。それはクラッシュの直前のポイントにあなたを連れて来るはずです。

XAMLはコンパイル時には検証されませんが、実行時にのみ検証されます。ただし、XamlChttps://developer.xamarin.com/guides/xamarin-forms/xaml/xamlc/)をオンにすると、(ほとんどの)解析エラーがコンパイル時に検出されます。そしてそれはXamlCを使用するための唯一の議論ではありません。

+0

MSがどこにデバッグを置くか知っていますか? > VS2017の例外。非表示になっています.XamlParseExceptionのブレークをオンにしたいのですが、画面が見つからない場合があります。 – user1813319

+0

あなたの言っていることは間違っていませんが、この特定の問題私は同じ問題を抱えています。 –

0

答えは非常に簡単です。 InitializeComponentをtry/catchの中に入れます。 InitializeComponentはXAML解析エラーを検出したときには返されませんが、例外をキャッチしてex.messageが便利です。

try 
      { 
       InitializeComponent(); 
      } 
      catch (Exception ex) 
      { 
       throw ex; 
      } 

メッセージ "Xamarin.Forms.Xaml.XamlParseException。:ポジション午前9時12分をStaticResourceキーMyStyleは見つかりません" が表示されます。私は例外が捕らえられるのを期待していませんでしたが、私は偶然に間違っていました。

「飲み込み」手がかりのステファンに感謝します。

関連する問題