달성하려는 모든 사항은 응용 프로그램에서 예외를 catch하여 서버로 보낼 수 있습니다. 내 사용자 정의를 작성하여이 작업을 수행 할 수 있다고 알았습니다. UncaughtExceptionHandler Java의 네이티브 Android 코드에이 기본으로 StackOverflow에서 here으로 응답했습니다.Xamarin.Android에서 사용자 정의 UncaughtExceptionHandler를 올바르게 작성하는 방법
이 내 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();
}
}
내 활동에 DefaultUncaughtExceptionHandler을 설정하려면이 클래스를 사용 : 나는 무엇을 모르는
// Set the default exception handler to a custom one
Thread.DefaultUncaughtExceptionHandler = new CustomExceptionHandler(
Thread.DefaultUncaughtExceptionHandler);
이 접근 방식에 문제가있어 빌드가되었지만 잘못되었습니다. 런타임시 CastException.
나는 나의 CustomExceptionHandler과 DefaultUncaughtExceptionHandler에 대해 동일한 Thread.IUncaughtExceptionHandler 인터페이스 유형이 있지만, 내가 왜이 오류는 무엇입니까? 제발 저를 계몽하십시오. 고맙습니다.
여기에서'JavaCast'을 사용해보십시오. https://developer.xamarin.com/api/member/Android.Runtime.Extensions.JavaCast%7BTResult%7D/p/Android.Runtime.IJavaObject/ –
@JonDouglas 나는 이것을 사용했다. Thread.DefaultUncaughtExceptionHandler = Extensions.JavaCast ( 새로운 CustomExceptionHandler (Thread.DefaultUncaughtExceptionHandler)); 하지만 여전히 같은 오류가 발생합니다. –
arvicx