在我的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
}发布于 2013-01-16 16:38:20
尝试如下所示:
EDIT :此代码无法处理捕获的错误。请参阅@Jim G.'s answer...
就我个人而言,我会将错误处理本地化到您需要它的地方。原因是,当这个处理程序被招募时,你不知道你的应用程序状态是什么-你可能没有你依赖的资源来做处理……
发布于 2013-06-07 01:47:10
我不同意@SpiritMachine's answer的观点。
单声道文档tells us
注意:您不能依赖
AppDomain.UnhandledException事件,因为托管异常在MonoDroid中永远不会不被处理;它们总是在AppDomain.UnhandledException(异常)块中的Android/托管边界处被拦截。
相反,我建议您执行以下操作:
AndroidEnvironment.UnhandledExceptionRaiser += (sender, args) =>
{
// Do something...
};https://stackoverflow.com/questions/14340677
复制相似问题