4

ページ間を移動すると、WinJSアプリケーションでランダムにクラッシュします。

問題は、アプリがVisual Studioデバッガーに接続されている場合、これらのクラッシュが発生しないことです。だから私は彼らがどこから来たのかわかりません。

WinJS.Application.onerrorイベントを使用してクラッシュを防ぎ、何が起こったかをログに記録しますが、ランダムな例外を試してみるとこれはうまく機能するため、「キャッチできない」クラッシュはこのイベントを発生させないようです(ログに記録されたもの)。

これらのクラッシュの原因となる可能性のあるもの、またはより多くの情報を見つけるための解決策について何か考えがありますか?

4

3 に答える 3

5

いくつかの理由でエラーがWinJS.Application.onerrorを起動できない場合があります(私のアプリでは、問題はiframe、winjsを使用していないページにありました)。

それが発生した場合、エラーはイベントログの「管理イベント」の下にあります。

このリンクでこれを見つけました: http ://www.davepaquette.com/archive/2012/09/15/windows-8-store-app-crash-logs.aspx

于 2012-12-10T11:03:11.613 に答える
4

ジェイソンはこのビデオでこの問題の良い解決策を示しています(時間14:48から開始)。彼の例では、コールバックがあり、コールバックが完了する前に別のページに移動した場合、アプリがクラッシュしていました。これはあなたのアプリに当てはまりますか?ナビゲートするときに何が起こっているかについての詳細はありますか?

他の人のために(あなたはすでにこれについて知っているようです!):

デバッグを容易にするために、WinJS.Application.OnErrorイベントを使用します。アプリがクラッシュする前に問題に関する情報をダンプするイベントハンドラーを接続します。

WinJS.Application.onerror = function (info) {
   var err = {
     errorMessage: info.detail.errorMessage,
     errorUrl: info.detail.errorUrl,
     errorLine: info.detail.errorLine,
     errorCharacter: info.detail.errorCharacter,
   };

   Windows.Storage.ApplicationData.current.localFolder
      .createFileAsync("crash.txt", Windows.Storage.CreationCollisionOption.openIfExists)
      .then(function (file) {
         Windows.Storage.FileIO.appendLinesAsync(file, [JSON.stringify(err)]);
      });
};
于 2012-12-07T18:04:27.387 に答える
0

JavaScriptでの例外の最後の停止は、実際にはwindow.onerrorです。すべての例外がWinJS.Application.onerrorを介してスローされるわけではありません。window.onerrorを直接フックしてみてください。

于 2012-12-07T21:01:33.467 に答える