java - 突然关闭应用程序而不进行任何 Activity ,抛出 IllegalStateException onMeasure()

标签 java android illegalstateexception application-shutdown

我的应用程序总是在随机时间间隔内关闭(主要是从几分钟到大约 20 分钟)。出现“应用程序停止工作”消息框。最大的问题是,我没有在应用程序中做任何事情(比如与它交互),它只是随机关闭。这是 logcat 打印:

07-15 20:34:16.595 27361-27363/test.game D/dalvikvm: GC_CONCURRENT freed 141
9K, 44% free 13902K/24391K, paused 4ms+9ms, total 66ms
07-15 20:34:28.997 27361-27363/test.game D/dalvikvm: GC_CONCURRENT freed 1416K, 43% free 13903K/24391K, paused 3ms+7ms, total 56ms
07-15 20:34:29.418 27361-27361/test.game D/AndroidRuntime: Shutting down VM
07-15 20:34:29.418 27361-27361/test.game W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x412b52a0)
07-15 20:34:29.498 27361-27361/test.game E/AndroidRuntime: FATAL EXCEPTION: main java.lang.IllegalStateException: onMeasure() did not set the measured dimension by calling setMeasuredDimension()
at android.view.View.measure(View.java:15293)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:617)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:399)
at android.view.View.measure(View.java:15288)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:617)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:399)
at android.view.View.measure(View.java:15288)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4876)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:15288)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4876)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1396)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:681)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
at android.view.View.measure(View.java:15288)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4876)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2397)
at android.view.View.measure(View.java:15288)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1974)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1217)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1390)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1113)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4481)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
at android.view.Choreographer.doCallbacks(Choreographer.java:555)
at android.view.Choreographer.doFrame(Choreographer.java:525)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4867)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
at dalvik.system.NativeStart.main(Native Method)

有人会说,这是因为我在覆盖方法onMeasure() 时没有写setMeasuredDimension()。此外,文档说您必须将此行写入您的 onMeasure,否则将抛出 IllegalStateException ( see it here)。

但我没有在整个项目的任何地方覆盖 onMeasure,所以问题不在这里(至少在这种情况下我这边没有)。

注意事项:

  • 这是完整的 logcat 日志,这些行中的任何一行(“at android. ...”)都没有链接到我的代码,全部转到源代码 - 这意味着所有这些链接是灰色的
  • 此异常总是只发生在我的 S3 Mini (android 4.1.2) 上,但从未发生在我的旧 Galaxy Ace S5830i (android 2.3.6) 上(是的,我测试了很多 -超过 20 小时的旧手机和应用程序仍在运行!)。
  • 在模拟器中从未发生过
  • 后台没有运行可能导致此异常的“ View 调整大小”操作

我想发布一些代码,但我完全不知道这个异常会在哪里抛出。

如果有人能提供帮助,我将非常非常感激。我现在迷路了......

最佳答案

由于没有代码,这只是一个随机猜测。您可以首先查找已添加 fragment 的 Activity 。可能是由于长时间不活动(以及系统的内存要求,我认为这是您在设备上而不是在另一个设备上发现错误的原因,包含 fragment 的 Activity 已在设备上被破坏).所以情况是 fragment 可能指的是现在可能没有附加到窗口的 View 。 (你也可以寻找使用 fragment 适配器的 View ,如 viewPager 等,如果你使用过的话)。

关于java - 突然关闭应用程序而不进行任何 Activity ,抛出 IllegalStateException onMeasure(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38698480/

相关文章:

android - IllegalStateException:在 Activity 类中找不到方法...( View )

Android - 用于处理 IllegalStateException : Cannot access database on the main thread 的 Kotlin 协程

PE (.exe) 周围的 Java 包装器

java - 使用堆栈检查分隔符

java - 包和类路径

未显示包含许多操作的 Android 通知

android - 如何在同一个 APK 中支持 Amazon 和 Android Market (Google Play) 链接

java - 为什么我的 java 制作的 pacMan 克隆有时会滞后?

android - 哪款 Android 手机用于开发...?

kotlin - Android Kotlin StringRes 数量String