1

私のアプリいつもシャットダウン(ほとんどの場合、数分から20分など)。 「App stopped working」というメッセージボックスが表示されます。最大の問題は、アプリで何もしない(それとやりとりするなど)、それだけではランダムシャットダウンということです。ここでlogcat印刷です:何もしないで突然アプリをシャットダウンするとIllegalStateExceptionがスローされますonMeasure()

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のログで、これらの行のいずれかのすべてが行く、私のコードにリンクしていない(「アンドロイドで ...。」)私のS3 Mini(android 4.1.2)でしか発生しませんが、は私の古いGalaxy Ace S5830i(android 2.3.6)で起こりました(とはい、私はそれを試してみました - 古い携帯電話で20時間以上、まだ実行中のアプリ!)。
  • は、この例外

を引き起こす可能性がバックグラウンドで実行されている操作を一切「リサイズビュー」は、私はいくつかのコードを投稿したいと思いますが、私はどこにこの例外全く見当がつかないがない

  • エミュレータで
  • が起こったことはありませんスローされる可能性があります。

    誰かが助けてくれたら、本当に感謝しています。私はこの時点で失われています...

    答えて

    1

    コードがないので、これは単なるランダムな推測です。フラグメントを追加したアクティビティを調べることから始めることができます。長い間、非アクティブなためにフラグメントを含むアクティビティが破壊されている可能性があります(システムが必要とするメモリ要件です。これは、デバイス上でバグを発見する理由ではないと思います) )。その場合、フラグメントは、ウィンドウに現在添付されていないビューを参照している可能性があります。 (viewPagerなどのフラグメント・アダプターを使用しているビューも使用できます)。

    +0

    だから、しばらくしてから、存在しないビューが発生する可能性があると思いますか?私は静的なビューとしてそれらのいくつかを参照してください。ところで、私は私のアプリで1つのviewPagerを持っています。私は静的なviewPagerとしても参照しています。 私はそれを見ていきます。 – BlackJack

    +0

    最も可能性の高い原因と思われます。すべて最高の仲間!そのようなエラーは見つけて修正するのが最も難しいです。 –

    +0

    ありがとうございますが、viewPagerを非静的にすることは役に立ちませんでした:(私のアプリではもっと静的なビューを減らそうとしますが、これが最大の希望でした: – BlackJack

    関連する問題