That would be worrisome because we do not save/restore the state of views without ids.
On Tue, Nov 24, 2009 at 2:39 PM, Streets Of Boston <[email protected]> wrote: > I'm going to check that out. > > What if it occurs on a View without an ID? > > Thanks! > > On Nov 24, 11:27 am, Romain Guy <[email protected]> wrote: >> This would happen if you have several views of different type with the >> same id inside a single view hierarchy. This could cause other >> problems so I really advise you to not hack around the default >> implementation of onRestoreInstanceState() but make sure that your UI >> is setup correctly. >> >> On Tue, Nov 24, 2009 at 7:28 AM, Streets Of Boston >> >> >> >> >> >> <[email protected]> wrote: >> > i've seen this too. >> > I got around it by overriding the problematic View's >> > onRestoreInstanceState method: >> >> > public void onRestoreInstanceState(Bundle savedState) { >> > ... >> > ... >> > super.onRestoreInstanceState(BaseSavedState.EMPTY_STATE); >> > } >> >> > I took a look at the android.view.View's implementation of this >> > onRestoreInstanceState method and it only expects the >> > BaseSavedState.EMPTY_STATE as valid input. It checks for if >> > (savedState != BaseSavedState.EMPTY_STATE) then throw exception ... >> >> > For me it went wrong because 'savedState' is no longer the actual >> > BaseSavedState.EMPTY_STATE instance but a de-serialized copy of it >> > (after the killed process has been restored/restarted) and this means >> > that the '!=' operator returns true and an exception is thrown. >> >> > On Nov 24, 10:08 am, Mark Wyszomierski <[email protected]> wrote: >> >> Hi, >> >> >> I'm testing how my app behaves when killed by the OS due to low memory >> >> conditions. I always have three activities on the stack, like: >> >> >> A B C (then C launches maps or some other heavy process) >> >> >> when my app is killed, and I return to it, C starts itself up again >> >> ok. When I hit the back button to go to B, I [sometimes] get an >> >> exception thrown which I can't trace. Output is below. I don't know >> >> where to go from here. I've only seen one other post mentioning this >> >> exception, but it was related to a reproducable error when rotating >> >> the device. This only happens sometimes. Thanks for any help: >> >> >> 11-24 07:52:12.469: ERROR/AndroidRuntime(5877): Uncaught handler: >> >> thread main exiting due to uncaught exception >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): >> >> java.lang.RuntimeException: Unable to start activity ComponentInfo >> >> {com.test.android/com.test.android.ui.ActivityHello}: >> >> java.lang.IllegalArgumentException: Wrong state class -- expecting >> >> View State >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.app.ActivityThread.performLaunchActivity(ActivityThread.java: >> >> 2268) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: >> >> 2284) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.app.ActivityThread.access$1800(ActivityThread.java:112) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.os.Handler.dispatchMessage(Handler.java:99) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.os.Looper.loop(Looper.java:123) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.app.ActivityThread.main(ActivityThread.java:3948) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> java.lang.reflect.Method.invokeNative(Native Method) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> java.lang.reflect.Method.invoke(Method.java:521) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run >> >> (ZygoteInit.java:782) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> dalvik.system.NativeStart.main(Native Method) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): Caused by: >> >> java.lang.IllegalArgumentException: Wrong state class -- expecting >> >> View State >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.view.View.onRestoreInstanceState(View.java:5359) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.view.View.dispatchRestoreInstanceState(View.java:5335) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java: >> >> 1093) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java: >> >> 1097) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java: >> >> 1097) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java: >> >> 1097) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java: >> >> 1097) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.view.View.restoreHierarchyState(View.java:5314) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState >> >> (PhoneWindow.java:1501) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.app.Activity.onRestoreInstanceState(Activity.java:834) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.app.Activity.performRestoreInstanceState(Activity.java:800) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.app.Instrumentation.callActivityOnRestoreInstanceState >> >> (Instrumentation.java:1172) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): at >> >> android.app.ActivityThread.performLaunchActivity(ActivityThread.java: >> >> 2245) >> >> 11-24 07:52:12.539: ERROR/AndroidRuntime(5877): ... 11 more >> >> > -- >> > You received this message because you are subscribed to the Google >> > Groups "Android Developers" group. >> > To post to this group, send email to [email protected] >> > To unsubscribe from this group, send email to >> > [email protected] >> > For more options, visit this group at >> >http://groups.google.com/group/android-developers?hl=en >> >> -- >> Romain Guy >> Android framework engineer >> [email protected] >> >> Note: please don't send private questions to me, as I don't have time >> to provide private support. All such questions should be posted on >> public forums, where I and others can see and answer them- Hide quoted text - >> >> - Show quoted text - > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- Romain Guy Android framework engineer [email protected] Note: please don't send private questions to me, as I don't have time to provide private support. All such questions should be posted on public forums, where I and others can see and answer them -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

