Android:视图层次结构中的重复ID

Dan*_*ail 7 crash android ads

我有一个问题,从市场报道 - 应用程序中的巨大崩溃,告诉我:

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 State但收到改为使用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.在java.lang.reflect.Method.invoke的java.lang.reflect.Method.invokeNative(Native Method)的android.app.ActivityThread.main(ActivityThread.java:3691)上循环(Looper.java:130)(方法. 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:错误的状态类,期望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.位于android.view.View.View.St上的android.view.ViewGroup中的android.view.View.ViewGroup中的android.view.ViewGroup中的android.view.ViewGroup中的android.view.ViewGroup中的android.view.ViewGroup中的ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:1215)ViewGroup.dispatchRstoreInstanceState(ViewGroup.java:1215)(ViewGroup.java:1215)的.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.perfor mLaunchActivity(ActivityThread.java:1629)......还有12个

Jij*_*dan 3

从一个片段切换到另一个包含相同进度条 ID 的片段时遇到了此问题。把id改成别的id就解决了。