私のアプリいつもシャットダウン(ほとんどの場合、数分から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を持っています。私は静的なviewPagerとしても参照しています。 私はそれを見ていきます。 – BlackJack
最も可能性の高い原因と思われます。すべて最高の仲間!そのようなエラーは見つけて修正するのが最も難しいです。 –
ありがとうございますが、viewPagerを非静的にすることは役に立ちませんでした:(私のアプリではもっと静的なビューを減らそうとしますが、これが最大の希望でした: – BlackJack