android - 如何检测错误发生的原因

标签 android google-play stack-trace

该应用程序在市场上,有时会报告崩溃。该问题在 3 台具有不同 Android 版本的不同设备上出现了 5 次。 stacktrace 因 android 版本而略有不同,但大部分看起来像这样:

java.lang.IllegalStateException:
at android.widget.TextView.onKeyUp (TextView.java:7465)
at android.view.KeyEvent.dispatch (KeyEvent.java:2750)
at android.view.View.dispatchKeyEvent (View.java:11724)
at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1845)
at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1845)
at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1845)
at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1845)
at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1845)
at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1845)
at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1845)
at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1845)
at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1845)
at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1845)
at com.android.internal.policy.DecorView.superDispatchKeyEvent (DecorView.java:591)
at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent (PhoneWindow.java:1829)
at android.app.Activity.dispatchKeyEvent (Activity.java:3280)
at android.support.v7.app.AppCompatActivity.dispatchKeyEvent (AppCompatActivity.java:534)
at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent (WindowCallbackWrapper.java:58)
at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent (AppCompatDelegateImplBase.java:316)
at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent (WindowCallbackWrapper.java:58)
at com.android.internal.policy.DecorView.dispatchKeyEvent (DecorView.java:401)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent (ViewRootImpl.java:4747)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:4619)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4161)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:4214)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4180)
at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:4307)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4188)
at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:4364)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4161)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:4214)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4180)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4188)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4161)
at android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:6682)
at android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:6656)
at android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:6617)
at android.view.ViewRootImpl$ViewRootHandler.handleMessage (ViewRootImpl.java:3944)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:164)
at android.app.ActivityThread.main (ActivityThread.java:6501)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)

我如何了解问题发生的位置以进行测试、调试和修复?

最佳答案

@i.terrible 谢谢你的建议。 为了理解这个问题,我不得不检查谷歌提供的崩溃日志和视频(幸运的是这个问题也出现在谷歌的模拟器上,他们的日志提供了更多信息)。问题的原因是在 EditText 的 imeOptions 中。我已经将 actionDone 放在那里以避免聚焦无法聚焦的 View ,这已经解决了这个问题。

关于android - 如何检测错误发生的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50988274/

相关文章:

java - 如何使用 appium 自动化/测试 Android 混合应用程序?

android - 在 Activity/Fragment 中处理 RecyclerView OnClickListener

java - DateFormat 或 Calender.getInstance 有时会返回随机值

android - 想要发布第一个 App 我需要知道什么

c# - StackTrace/StackFrame 不返回生产环境中的预期信息

android - 相机 Intent 自动旋转到 90 度

android - 发布具有不同版本的相同应用程序

android - 无法从 Google Play 下载应用程序,因为 "another account has joined the beta program"

erlang - Erlang 堆栈跟踪中包含多少条目?

ruby - 我如何强制 Ruby 显示完整的堆栈跟踪?