Tôi muốn đăng nhập ngoại lệ không được xử lý, nhưng tôi thấy thông tin xung đột về việc và cách thức này có thể thực hiện được hay không.Ghi nhật ký Xamarin unhandled (Android uncaught) ngoại lệ
Tôi hiểu rằng Xamarin đặt ra một sự kiện AndroidEnvironment.UnhandledExceptionRaiser
hoặc AppDomain.CurrentDomain.UnhandledException
và tôi có thể đăng ký sự kiện này, nhưng tôi cho rằng Android đang giết quá trình của tôi và tôi không có quyền truy cập vào Android.Utils.Log hoặc hệ thống tệp.
Nếu bạn nhìn vào Xamarin's AdvancedAppLifecycleDemos/HandlingCrashes/App.cs có một đối số thuyết phục rằng bạn không thể ghi ngoại lệ này.
/// <summary>
/// When app-wide unhandled exceptions are hit, this will handle them. Be aware however, that typically
/// android will be destroying the process, so there's not a lot you can do on the android side of things,
/// but your xamarin code should still be able to work. so if you have a custom err logging manager or
/// something, you can call that here. You _won't_ be able to call Android.Util.Log, because Dalvik
/// will destroy the java side of the process.
/// </summary>
protected void HandleUnhandledException(object sender, UnhandledExceptionEventArgs args)
{
Exception e = (Exception)args.ExceptionObject;
// log won't be available, because dalvik is destroying the process
//Log.Debug (logTag, "MyHandler caught : " + e.Message);
// instead, your err handling code shoudl be run:
Console.WriteLine("========= MyHandler caught : " + e.Message);
}
Vậy làm cách nào để thoát ngoại lệ?
Hi Adam! Bạn đã từng nhìn thấy chủ đề này chưa? https://forums.xamarin.com/discussion/13784/catching-global-exceptions-in-android lưu ý thực tế là 'Console.Writeline' dường như không hoạt động nhưng' Android.Util.Log.Debug' Là. –
Tôi không thấy chủ đề đó cụ thể, nhưng tôi vẫn theo ấn tượng rằng Android.Util.Log có thể hoặc có thể không hoạt động vì Android đang tích cực trong quá trình tiêu diệt quy trình của bạn (như được tham chiếu trong https: // github .com/xamarin/monodroid-samples/tree/master/AdvancedAppLifecycleDemos/HandlingCrashes). – Adam
Bạn đã xem Xamarin.Insights chưa? Nó có thể bắt ngoại lệ của bạn unhandled và xử lý sau khi khởi tạo trên mainactivity/appdelegate nhưng dường như có một thương mại tắt trong những hiểu biết làm chậm các ứng dụng đa luồng trên nền tảng Android. –