我有一个问题,从市场报道 - 应用程序中的巨大崩溃,告诉我:
java.lang.RuntimeException:无法启动活动ComponentInfo {com .... android / com .... android.activities ....}:java.lang.IllegalArgumentException:错误的状态类,期待View State但是收到类android.widget.ProgressBar $ SavedState而不是。当两个不同类型的视图在同一层次结构中具有相同的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:错误的状态类,期待View状态但是收到类android.widget.ProgressBar $ SavedState而不是。当两个不同类型的视图在同一层次结构中具有相同的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.ActivityThread.access $ 1600(ActivityThread.java:117) 在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) at 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) at dalvik.system.NativeStart.main(Native Method) 引起:java.lang.IllegalArgumentException:错误的状态类,期望View State但是收到了类android.widget.ProgressBar $ SavedState。当两个不同类型的视图在同一层次结构中具有相同的id时,通常会发生这种情况。该视图的id是id / 0x2。确保其他视图不使用相同的ID。 在android.view.View.onRestoreInstanceState(View.java:6355) 在android.view.View.dispatchRestoreInstanceState(View.java:6331) 在android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:1211) 在android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:1215) 在android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:1215) 在android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:1215) 在android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:1215) 在android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:1215) 在android.view.View.restoreHierarchyState(View.java:6310) 在com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState(PhoneWindow.java:1537) 在android.app.Activity.onRestoreInstanceState(Activity.java:850) 在android.app.Activity.performRestoreInstanceState(Activity.java:822) 在android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1096) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1629) ......还有12个
答案 0 :(得分:3)
从一个片段切换到另一个包含progressBar相同ID的片段时遇到此问题。将id更改为不同的ID并得到解决。