繁体   English   中英

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

[英]Android: duplicated ids in view hierarchy

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

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.A活动中的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)上的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667),android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:2836)。 ActivityThread.access $ 1600(ActivityThread.java:117)在Android.os.Looper的android.app.Handler.dispatchMessage(Handler.java:99)上的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:939)。在java.lang.reflect.Method.invoke的java.lang.reflect.Method.invokeNative(Native Method)的android.app.ActivityThread.main(ActivityThread.java:3691)上循环(Looper.java:130)(方法。 java:507)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:907)at 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上的android.view.View.View.isp.::::????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????位于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) .java:1215)位于android.view.View.View.restoreInstanceState(View.java:6310)的android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:1215)at com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState( PhoneWindow.java:1537)在Android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1096)android.app.Activity.perRestoreInstanceState(Activity.java:822)的android.app.Activity.onRestoreInstanceState(Activity.java:850) )在android.app.ActivityThread.perfor mLaunchActivity(ActivityThread.java:1629)......还有12个

从一个片段切换到另一个包含progressBar相同id的片段时遇到此问题。 将id更改为不同的ID并解决了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM