1

I recently started getting following exception in our production app.

{ "androidApiLevel": "28", "osBuild": "PQ2A.190405.003" }

Device: Pixel 2 XL

Any idea whats going on here?

java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.widget.ScrollView$SavedState
    at android.widget.ScrollView.onRestoreInstanceState(ScrollView.java:1834)
    at android.view.View.dispatchRestoreInstanceState(View.java:18608)
    at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3821)
    at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3827)
    at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3827)
    at android.view.View.restoreHierarchyState(View.java:18586)
    at androidx.e.a.d.restoreViewState(Fragment.java:494)
    at androidx.e.a.j.a(FragmentManager.java:1486)
    at androidx.e.a.j.f(FragmentManager.java:1784)
    at androidx.e.a.j.a(FragmentManager.java:1852)
    at androidx.e.a.j.e(FragmentManager.java:3269)
    at androidx.e.a.j.q(FragmentManager.java:3229)
    at androidx.e.a.g.f(FragmentController.java:201)
    at androidx.e.a.e.onStart(FragmentActivity.java:620)
    at androidx.appcompat.app.d.onStart(AppCompatActivity.java:178)
    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1391)
    at android.app.Activity.performStart(Activity.java:7165)
    at android.app.ActivityThread.handleStartActivity(ActivityThread.java:2975)
    at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
    at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
    at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6718)
    at java.lang.reflect.Method.invoke(Method.java:-2)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
M-Wajeeh
  • 17,204
  • 10
  • 66
  • 103

2 Answers2

2

There might be a case where you are using the same ID name for two elements.

Recheck the ID which you have assigned to the scrollview with other views

Khalid Khan
  • 3,017
  • 1
  • 11
  • 27
0

I fixed this by going through the children of the scroll view and assigning id for them programmatically:

child.setId(generateViewId());

You can iterate them with the getChildCount() and getChildAt() etc.

Uriel Frankel
  • 14,304
  • 8
  • 47
  • 69