【发布时间】:2017-10-19 19:24:59
【问题描述】:
我的一个应用收到了一些有关 IllegalStateException 的崩溃报告。 Stack Traces 说它来自 android.view.View$DeclaredOnClickListener.onClick(view)。我在测试或日常使用中从未遇到过这个错误(我自己每天在运行 Android 6.0.1 的三星 Note 4 上使用app)。老实说,我不知道从哪里开始看,因为堆栈跟踪似乎甚至没有引用我自己的任何代码,只是平台代码。我错过了什么?此版本确实使用了支持库,但不使用片段,这是该错误的其他解决方案所指的地方。
下面我粘贴了一个堆栈跟踪。这是来自运行 Android 6.0 的 Moto G Turbo
java.lang.IllegalStateException:
at android.view.View$DeclaredOnClickListener.onClick(View.java:4455)
at android.view.View.performClick(View.java:5201)
at android.view.View$PerformClick.run(View.java:21163)
at android.os.Handler.handleCallback(Handler.java:746)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at java.lang.reflect.Method.invoke(Native Method:0)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
Caused by: java.lang.reflect.InvocationTargetException:
at java.lang.reflect.Method.invoke(Native Method:0)
at android.view.View$DeclaredOnClickListener.onClick(View.java:4450)
【问题讨论】:
-
会为您在布局 XML 中指定
onClick属性的每个View创建一个DeclaredOnClickListener。如果没有来自IllegalStateException的消息,或更具体的堆栈跟踪,很难说到底是什么问题。可能是由于某种原因找不到声明的方法,该方法中的某些东西在被调用时引发了另一个异常,等等。不过,这将是开始寻找的地方。 -
不知道我以前是怎么错过的,但底部的
InvocationTargetException表明您的onClick方法之一中的某些东西正在引发另一个异常。也就是说,不是找不到或无法访问该方法,而是该方法内部的某些内容失败了。这就是你得到的所有堆栈跟踪吗? -
这就是我在 Play 商店开发者控制台上看到的全部内容。如果有什么地方可以找到更多,我不知道。
-
嗨,斯科特,我面临着完全相同的问题,我无法在我的任何设备或模拟器中重现它。您是否找到问题的原因或解决方法?谢谢!
标签: java android google-play illegalstateexception