Open vicmns opened 5 years ago
Ok I found the issue... preferences was never read from the Parcel input on the SavedState class, so the SavedState method should look like this:
private SavedState(Parcel in) {
super(in);
preferences = in.readParcelable(Preferences.class.getClassLoader());
}
I'll create a MR for this fix
Still have this issue, with same steps to reproduce.
02-18 17:51:03.052 14769-14769/scoreapp.testtask.com E/AndroidRuntime: FATAL EXCEPTION: main Process: scoreapp.testtask.com, PID: 14769 java.lang.RuntimeException: Unable to start activity ComponentInfo{scoreapp.testtask.com/scoreapp.testtask.com.presentation.view.activity.ScoreTableActivity}: java.lang.NullPointerException: Attempt to read from field 'int com.evrencoskun.tableview.preference.Preferences.columnPosition' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2439) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2499) at android.app.ActivityThread.access$900(ActivityThread.java:166) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1360) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5487) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:765) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:655) Caused by: java.lang.NullPointerException: Attempt to read from field 'int com.evrencoskun.tableview.preference.Preferences.columnPosition' on a null object reference at com.evrencoskun.tableview.handler.PreferencesHandler.loadPreferences(PreferencesHandler.java:53) at com.evrencoskun.tableview.TableView.onRestoreInstanceState(TableView.java:742) at android.view.View.dispatchRestoreInstanceState(View.java:14781) at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3127) at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3133) at android.view.View.restoreHierarchyState(View.java:14759) at androidx.fragment.app.Fragment.restoreViewState(Fragment.java:494) at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1486) at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784) at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852) at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269) at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3229) at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:201) at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:620) at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:178) at scoreapp.testtask.com.presentation.view.activity.BaseActivity.onStart(BaseActivity.java:53) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1238) at android.app.Activity.performStart(Activity.java:6595) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2402) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2499) at android.app.ActivityThread.access$900(ActivityThread.java:166) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1360) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5487) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:765) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:655)
I am having the same issue right now. Not sure how to solve this.
java.lang.NullPointerException: Attempt to read from field 'int com.evrencoskun.tableview.preference.Preferences.columnPosition' on a null object reference
Only happens when it is being restored from a savedinstance.
When the activity/fragment get destroyed and the
onRestoreInstanceState()
method is called for the TableView I'm getting the following error:The easiest way to reproduce it is to run the DemoApp while the device has the option Don't keep Activities turn on in the Developer Options.