市場から報告された問題があります - アプリで大きなクラッシュが発生し、次のことがわかりました。
java.lang.RuntimeException: Unable to start activity ComponentInfo{com....android/com....android.activities....}: java.lang.IllegalArgumentException: 間違った状態クラス、ビュー ステートを期待しているがクラス android を受け取った.widget.ProgressBar$SavedState 代わりに。これは通常、異なるタイプの 2 つのビューが同じ階層で同じ ID を持つ場合に発生します。このビューの ID は id/0x2 です。他のビューが同じ ID を使用していないことを確認してください。
だから私はそれが通常それが言うことを意味することを知っています - 私は重複したIDを持つビューをどこかに持っています。これは良いことですが、私が心配しているのは、重複した id ビューが、私が統合した広告ネットワークに付属していると思われることです。すべての広告を保持するビューで try/catch を使用してクラッシュを抑制しようとしましたが、キャッチできませんでした。
したがって、私の次の考えは、広告ビューにはまだ何らかの役割がありますが、クラッシュは同じ ID を持つ他の (自分の) ビューで発生するということです。問題は、そのビューが何であり、どこで検索すればよいかわかりません。ID 0x2 のビューになる可能性のあるアイデアはありますか? (また 0x3 - その ID に関する多くのレポートも)? 広告ネットワークに接続された同様のクラッシュに出くわしたことがありますか?
これには本当にイライラします。どんな助けでも大歓迎です!
ありがとう、ダン
PS 完全なスタック トレース:
java.lang.RuntimeException: アクティビティ ComponentInfo を開始できません {com.....android/com.....android.activities....}: java.lang.IllegalArgumentException: 間違った状態クラス、ビュー ステートを期待していますが、受信しました代わりにクラス android.widget.ProgressBar$SavedState を使用してください。これは通常、異なるタイプの 2 つのビューが同じ階層で同じ ID を持つ場合に発生します。このビューの ID は id/0x2 です。他のビューが同じ ID を使用していないことを確認してください。android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) で android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) で android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:2836) で android.app. Android.app.ActivityThread$H.handleMessage(ActivityThread.java:939) で Android.os.Handler.dispatchMessage(Handler. java:99) で android.os.Looper.loop(Looper.java:130) で android.app.ActivityThread.main(ActivityThread.java:3691) で java.lang.reflect.Method.invokeNative(Native Method) で Java で.lang.reflect.Method.invoke(Method.java:507) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907) で com.android.internal.os.ZygoteInit.main(ZygoteInit) .java:665) dalvik.system.NativeStart.main(Native Method) で 原因: java.lang.IllegalArgumentException: 状態クラスが間違っています。ビュー ステートを期待していますが、代わりにクラス android.widget.ProgressBar$SavedState を受け取りました。これは通常、異なるタイプの 2 つのビューが同じ階層で同じ ID を持つ場合に発生します。このビューの ID は id/0x2 です。他のビューが同じ ID を使用していないことを確認してください。android.view.View.onRestoreInstanceState(View.java:6355) で android.view.View.