gpt4 book ai didi

c# - 如何在 Xamarin.Android 中正确编写自定义 UncaughtExceptionHandler

转载 作者:太空狗 更新时间:2023-10-29 15:40:34 25 4
gpt4 key购买 nike

我想要实现的是在我的应用程序上捕获异常,以便我可以将它们发送到服务器。我发现我可以通过使用 Java 回答 here 编写基于原生 Android 代码的自定义 UncaughtExceptionHandler 来做到这一点在 StackOverflow 中。

这是我的 CustomExceptionHandler 类:

public class CustomExceptionHandler : Thread.IUncaughtExceptionHandler
{
public IntPtr Handle { get; private set; }

public CustomExceptionHandler(Thread.IUncaughtExceptionHandler exceptionHandler)
{
Handle = exceptionHandler.Handle;
}

public void UncaughtException(Thread t, Throwable e)
{
// Submit exception details to a server
...

// Display error message for local debugging purposes
Debug.WriteLine(e);
}

public void Dispose()
{
throw new NotImplementedException();
}
}

然后我使用此类在我的Activity 中设置DefaultUncaughtExceptionHandler:

// Set the default exception handler to a custom one
Thread.DefaultUncaughtExceptionHandler = new CustomExceptionHandler(
Thread.DefaultUncaughtExceptionHandler);

我不知道这种方法有什么问题,它确实构建了,但我在运行时遇到了一个InvalidCastException

Error Image

我的 CustomExceptionHandlerDefaultUncaughtExceptionHandler 具有相同的 Thread.IUncaughtExceptionHandler 接口(interface)类型,但为什么会出现此错误?请赐教。谢谢。

最佳答案

它再次出现 :D 这是一个常见的错误。如果您实现 Java 接口(interface),则必须继承 Java.Lang.Object

public class CustomExceptionHandler : Java.Lang.Object, Thread.IUncaughtExceptionHandler
{
public void UncaughtException(Thread t, Throwable e)
{
// Submit exception details to a server
...

// Display error message for local debugging purposes
Debug.WriteLine(e);
}
}

关于c# - 如何在 Xamarin.Android 中正确编写自定义 UncaughtExceptionHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39668236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com