Thanks Romain, Did not work... still the exception...
It occurs on a View with an ID set to 'container'. And i went into my View hierarchy to check. All looks fine.: There is only one view with the id set to 'container'. Every other view in the hierarchy has a unique name or no id at all. And still i get the exception after my process is killed, restarted and my view is about to be restored.... Doing super.onRestoreInstanceState(BaseSavedState.EMPTY_STATE); gets rid of that exception. Here's my code-snippet. @Override protected void onRestoreInstanceState(Parcelable parcelable) { if (parcelable instanceof ViewBundle) { final ViewBundle viewBundle = (ViewBundle)parcelable; mSaveState = viewBundle.getBundle(); // Note that mRestoredBitmapOffFullSizedImage can be null! // It won't be null on a configuration change, but it may be // after this view's process/activity is restarted. mRestoredBitmapOffFullSizedImage = (Bitmap)viewBundle.getTransient ("bitmapholder"); super.onRestoreInstanceState(viewBundle.getSuperState()); } else { // TODO // This exception can be thrown when: // Do edit image (Effects) // Open Dialer app, make sure process smugdroid.process.pictures is killed. // Then return to SnapFX --> // java.lang.IllegalArgumentException: Wrong state class -- expecting View Sate. // Fixed it by always using BaseSavedState.EMPTY_STATE instead of 'parcelable'.... super.onRestoreInstanceState(parcelable); // <-- Exception happens here when using 'parcelable'. } } On Nov 24, 5:57 pm, Romain Guy <romain...@google.com> wrote: > 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 > > > > > > <flyingdutc...@gmail.com> 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 <romain...@google.com> 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 > > >> <flyingdutc...@gmail.com> 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 <mar...@gmail.com> 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 android-developers@googlegroups.com > >> > To unsubscribe from this group, send email to > >> > android-developers+unsubscr...@googlegroups.com > >> > For more options, visit this group at > >> >http://groups.google.com/group/android-developers?hl=en > > >> -- > >> Romain Guy > >> Android framework engineer > >> romain...@android.com > > >> 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 android-developers@googlegroups.com > > To unsubscribe from this group, send email to > > android-developers+unsubscr...@googlegroups.com > > For more options, visit this group at > >http://groups.google.com/group/android-developers?hl=en > > -- > Romain Guy > Android framework engineer > romain...@android.com > > 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 android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en