Skip to content

Final app (network + database) crashes when scrolling up and down (a lot) #67

@ianribas

Description

@ianribas

I'm not sure this is the right place for this issue, but I think it's where it will be clearer to explain.

I first noticed this when navigating on the app after I finished the code lab, but the stack trace below comes from the app generated with the step13-19_network_and_database branch.

Environment:

  • Android Studio 4.1.0-alpha10, AGP 4.1.0-beta01, Gradle 6.5-rc-1
  • Device: Samsung Galaxy S8, Android 7.0 (API 24)
  • Emulator: Pixel 3a, Android 10 (API 29)

Steps to reproduce:

  • Run app
  • Fling the list down many times
  • If still not happening, fling up a few times and then back down.

I also noticed that the list will sometimes scroll to the top when updating from the database while flinging down.

And also, when the error below happens, position is 0.

25609-25609/com.example.android.codelabs.paging E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.android.codelabs.paging, PID: 25609
    java.lang.UnsupportedOperationException: Unknown view
        at com.example.android.codelabs.paging.ui.ReposAdapter.getItemViewType(ReposAdapter.kt:42)
        at androidx.recyclerview.widget.NestedAdapterWrapper.getItemViewType(NestedAdapterWrapper.java:146)
        at androidx.recyclerview.widget.MergeAdapterController.getItemViewType(MergeAdapterController.java:318)
        at androidx.recyclerview.widget.MergeAdapter.getItemViewType(MergeAdapter.java:174)
        at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6283)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6216)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6212)
        at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2314)
        at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1631)
        at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1591)
        at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:668)
        at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4215)
        at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3926)
        at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4484)
        at android.view.View.layout(View.java:18874)
        at android.view.ViewGroup.layout(ViewGroup.java:5954)
        at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1915)
        at android.view.View.layout(View.java:18874)
        at android.view.ViewGroup.layout(ViewGroup.java:5954)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
        at android.view.View.layout(View.java:18874)
        at android.view.ViewGroup.layout(ViewGroup.java:5954)
        at androidx.appcompat.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:446)
        at android.view.View.layout(View.java:18874)
        at android.view.ViewGroup.layout(ViewGroup.java:5954)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
        at android.view.View.layout(View.java:18874)
        at android.view.ViewGroup.layout(ViewGroup.java:5954)
        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
        at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
        at android.view.View.layout(View.java:18874)
        at android.view.ViewGroup.layout(ViewGroup.java:5954)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
        at com.android.internal.policy.DecorView.onLayout(DecorView.java:935)
        at android.view.View.layout(View.java:18874)
        at android.view.ViewGroup.layout(ViewGroup.java:5954)
        at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2697)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2413)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1550)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7189)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:959)
        at android.view.Choreographer.doCallbacks(Choreographer.java:734)
        at android.view.Choreographer.doFrame(Choreographer.java:670)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:945)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6776)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions