Android: дублируются идентификаторы в иерархии представлений

У меня проблема, сообщил из маркета - огромный сбой в приложении, сообщая мне, что:

java.lang.RuntimeException: невозможно запустить активность ComponentInfo{com....android/com....android.activities....}: java.lang.IllegalArgumentException: Неверный класс состояния, ожидается состояние просмотра, но вместо этого получен класс android.widget.ProgressBar$SavedState. Обычно это происходит, когда два представления разного типа имеют одинаковый идентификатор в одной и той же иерархии. Идентификатор этого представления — id/0x2. Убедитесь, что другие представления не используют тот же идентификатор.

Итак, я знаю, что обычно это означает то, что написано — у меня где-то есть представления с дублированными идентификаторами.Это хорошо, но что меня беспокоит, так это то, что я думаю, что дублированные представления идентификаторов приходят с какой-то рекламной сетью, которую я интегрировал. Я попытался сдержать сбой с помощью try/catch в представлении, которое содержит все объявления, но не смог его поймать.

Итак, моя следующая мысль заключается в том, что просмотры рекламы по-прежнему играют определенную роль в этом, но сбой происходит в другом (моем собственном) представлении с таким же идентификатором. Дело в том, что я не знаю, что это за вид и где его искать. У вас есть идеи, что может быть представлением с id 0x2? (также 0x3 - много отчетов и по этому идентификатору)? Сталкивались ли вы с подобным крахом, связанным с рекламными сетями?

Очень расстроен этим. Любая помощь приветствуется!

Спасибо, Dan

PS полная трассировка стека:

java.lang.RuntimeException: невозможно запустить активность ComponentInfo{com.....android/com.....android.activities....}: java. lang.IllegalArgumentException: неправильный класс состояния, ожидание состояния просмотра, но вместо этого получен класс android.widget.ProgressBar$SavedState. Обычно это происходит, когда два представления разного типа имеют одинаковый идентификатор в одной и той же иерархии. Идентификатор этого представления — id/0x2. Убедитесь, что другие представления не используют тот же идентификатор. в 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.петля (Looper.java: 130) в android.app.ActivityThread.main(ActivityThread.java:3691) в java.lang.reflect.Method.invokeNative (собственный метод) в 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 (собственный метод) Причина: java.lang.IllegalArgumentException: неправильный класс состояния, ожидание состояния просмотра, но вместо этого получен класс android.widget.ProgressBar$SavedState. Обычно это происходит, когда два представления разного типа имеют одинаковый идентификатор в одной и той же иерархии. Идентификатор этого представления — id/0x2. Убедитесь, что другие представления не используют тот же идентификатор. в 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

7
задан Danail 17 April 2012 в 12:39
поделиться