View.java第18891行android.view.View.onRestoreInstanceState异常

时间:2018-12-20 05:05:38

标签: android exception-handling crashlytics

我在 crashlytics 中遇到了一些例外情况。但找不到文件或引起异常的原因。另外,我每次都会得到不同的行号。

我想了解的细节信息不多。

从crashlytics中,我获得了如下设备详细信息:

-三星SM-G950F-Android 8-View.java第18877行,View.java第18891行

-Oppo R7plusf-Android 5-View.java第13790行

-华硕ASUS_X00LD-Android 8-View.java第17753行

View.java行18891 android.view.View.onRestoreInstanceState

Fatal Exception: java.lang.RuntimeException
Unable to start activity ComponentInfo{com.lendlease.plus/com.lendlease.plus.activity.ReceiptDetailActivity}: java.lang.IllegalArgumentException: Wrong state class, expecting View State but received class android.os.Bundle instead. This usually happens when two views of different type have the same id in the same hierarchy. This view's id is id/ivReceipt. Make sure other views do not use the same id.
android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2955)
android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3030)
android.app.ActivityThread.-wrap11 (Unknown Source)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1696)
android.os.Handler.dispatchMessage (Handler.java:105)
android.os.Looper.loop (Looper.java:164)
android.app.ActivityThread.main (ActivityThread.java:6938)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)

如果您遇到这样的例外情况,请告诉我,否则您可能知道任何原因。

谢谢!

1 个答案:

答案 0 :(得分:1)

您是否已阅读崩溃报告

  

期望查看状态,但收到了android.os.Bundle类。当不同类型的两个视图在同一层次结构中具有相同的id时,通常会发生这种情况。该视图的ID为id / ivReceipt。确保其他视图不使用相同的ID。   android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2955)

该报告说,在您的ReceiptDetailActivity布局中,您有两个不同的视图,其中包含相同的ID ivReceipt

根据您的以下评论

  

是的,在该布局中,有一个包含的布局包含相同的ivReceipt ID

解决方案不要使用相同的ID,只需更改ID名称即可使用