Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Settings Screen crashing on screen rotation #3

Closed
kaushiknsanji opened this issue Nov 6, 2017 · 1 comment
Closed

Settings Screen crashing on screen rotation #3

kaushiknsanji opened this issue Nov 6, 2017 · 1 comment

Comments

@kaushiknsanji
Copy link
Owner

The Settings in this app has been setup to adjust the parameters used in generating the Search URL of the Google Books API, embedding the search keyword entered by the user, for the Book to be searched. This has been designed using the android.support.v7.preference.Preference.

settings_error

The Setting screen can be launched by going over to the overflow menu in the main activity, and then by clicking on the "Search Settings" menu as shown in the above GIF. After the Settings screen is launched, just rotate the device screen, and the following error will be seen in the logs -

10-26 20:13:11.091 3966-3987/com.example.kaushiknsanji.bookslibrary D/OpenGLRenderer: endAllActiveAnimators on 0x8d267a80 (MenuPopupWindow$MenuDropDownListView) with handle 0x8d7a2c20
10-26 20:13:13.998 3966-3966/com.example.kaushiknsanji.bookslibrary D/AndroidRuntime: Shutting down VM
                                                                                      
                                                                                      
                                                                                      --------- beginning of crash
10-26 20:13:13.999 3966-3966/com.example.kaushiknsanji.bookslibrary E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                      Process: com.example.kaushiknsanji.bookslibrary, PID: 3966
                                                                                      java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.kaushiknsanji.bookslibrary/com.example.kaushiknsanji.bookslibrary.settings.SearchSettingsActivity}: java.lang.IllegalStateException: Derived class did not call super.onRestoreInstanceState()
                                                                                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
                                                                                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
                                                                                          at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4519)
                                                                                          at android.app.ActivityThread.-wrap19(ActivityThread.java)
                                                                                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1483)
                                                                                          at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                          at android.os.Looper.loop(Looper.java:154)
                                                                                          at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                                          at java.lang.reflect.Method.invoke(Native Method)
                                                                                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                                                       Caused by: java.lang.IllegalStateException: Derived class did not call super.onRestoreInstanceState()
                                                                                          at android.support.v7.preference.Preference.dispatchRestoreInstanceState(Preference.java:1726)
                                                                                          at android.support.v7.preference.PreferenceGroup.dispatchRestoreInstanceState(PreferenceGroup.java:395)
                                                                                          at android.support.v7.preference.PreferenceGroup.dispatchRestoreInstanceState(PreferenceGroup.java:395)
                                                                                          at android.support.v7.preference.Preference.restoreHierarchyState(Preference.java:1706)
                                                                                          at android.support.v7.preference.PreferenceFragmentCompat.onActivityCreated(PreferenceFragmentCompat.java:343)
                                                                                          at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:2201)
                                                                                          at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1326)
                                                                                          at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1528)
                                                                                          at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1595)
                                                                                          at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2900)
                                                                                          at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:201)
                                                                                          at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:603)
                                                                                          at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
                                                                                          at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1248)
                                                                                          at android.app.Activity.performStart(Activity.java:6696)
                                                                                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2628)
                                                                                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 
                                                                                          at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4519) 
                                                                                          at android.app.ActivityThread.-wrap19(ActivityThread.java) 
                                                                                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1483) 
                                                                                          at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                          at android.os.Looper.loop(Looper.java:154) 
                                                                                          at android.app.ActivityThread.main(ActivityThread.java:6119) 
                                                                                          at java.lang.reflect.Method.invoke(Native Method) 
                                                                                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
                                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 

Let me know how to solve this issue.

@kaushiknsanji
Copy link
Owner Author

Call to superclass when the state was never saved, was missing in the onRestoreInstanceState() method of the custom preferences. Issue has been fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant