Xamarin/Android - java.lang.reflect.InvocationTargetException Xamarin/Android - java.lang.reflect.InvocationTargetException(调用目标异常)

3

我在Google Play控制台(新的重要部分)中看到了这个堆栈跟踪,对于许多设备都有此问题(出现了224次),但我真的不知道如何找到此错误的根本原因:

java.lang.RuntimeException: 
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Caused by: java.lang.reflect.InvocationTargetException: 
  at java.lang.reflect.Method.invoke(Native Method:0)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)

有人遇到过这个问题吗?我该如何找到根本原因?

谢谢

1个回答

1
我无法告诉您的应用程序问题所在,但我可以解释一下为什么您会得到如此不透明的堆栈跟踪。
在2017年5月中旬,Google改变了崩溃数据收集的方式。以前,唯一收集崩溃数据的方法是报告每个单独的崩溃。应用程序崩溃后,用户将被提示在下次打开应用程序时“报告”崩溃数据。
现在,用户可以选择自动发送崩溃数据,而不必有意报告每个单独的崩溃(尽管旧系统仍然存在)。
由于某种原因,在新系统下报告的Xamarin Android应用程序崩溃缺少了先前在旧模型下可用的大部分堆栈跟踪。根本原因与从Android的Zygote部分触发的异常相关,这些异常是java.lang.Errorjava.lang.Exception类的专门实例,它们不继承Xamarin使用的java.lang.Throwable
Xamarin bugzilla系统中有一个长而详细的讨论,https://bugzilla.xamarin.com/show_bug.cgi?id=56653。其中一个关键段落如下:
目前看来,Zygote及其公司正在特别处理java.lang.Exception和java.lang.Error的行为。JavaProxyThrowable继承自java.lang.Throwable——Error和Exception的基类——而Zygote等似乎不支持这一点。
无论哪种方式,Xamarin开发人员已经修改了他们的系统,我们只需要等待新版本的发布。
在此期间,您需要转向其他崩溃报告系统(如HockeyApp或Crashlytics)以找出导致您特定问题的原因。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接