0

私の MonoDroid アプリケーションでは、未処理の例外が発生すると、アプリケーションはメッセージなしで終了します。ローカル デバイスでエラーを再現できれば、Visual Studio で問題なくデバッグできます。

ただし、リモートデバイスでは、解決策がありません。

Application クラスで次のことを試しましたが、Visual Studio でデバッガーを実行していない限り、実際にはログ ファイルが書き込まれません。

public override void OnCreate()
    {
        base.OnCreate();                                    
        AndroidEnvironment.UnhandledExceptionRaiser += new EventHandler<RaiseThrowableEventArgs>(AndroidEnvironment_UnhandledExceptionRaiser);
    }

    void AndroidEnvironment_UnhandledExceptionRaiser(object sender, RaiseThrowableEventArgs e)
    {
        // Write Log File
    }
4

2 に答える 2

3

@SpiritMachineの答えに同意しません。

Mono のドキュメントには次のように書かれています。

AppDomain.UnhandledException注: MonoDroid ではマネージド例外が処理されないため、イベントに依存することはできません。これらは、catch(Exception) ブロック内の Android/マネージド境界で常にインターセプトされます。

代わりに、次のことをお勧めします。

AndroidEnvironment.UnhandledExceptionRaiser += (sender, args) =>
{
    // Do something...
};
于 2013-06-06T17:47:10.130 に答える
-1

次のようなことを試してください:

EDIT :このコードは、キャッチされたエラーを処理できません。@Jim G.の回答をご覧ください....

個人的には、エラー処理を必要な場所にローカライズします。その理由は、このハンドラーが募集されたときにアプリケーションの状態がどうなるかわからないためです。処理を行うために依存しているリソースがない可能性があります...

于 2013-01-16T08:38:19.650 に答える