udacity / AdvancedAndroid_MyGarden

102 stars 303 forks source link

Attempting to access a closed CursorWindow.Most probable cause: cursor is deactivated prior to calling this method. #8

Open meshileya opened 6 years ago

meshileya commented 6 years ago

Dont know why i keep getting this error, whenever i want to add a new plant and also, whenever i want go back gro the previous state.

Process: com.example.android.mygarden, PID: 11632
    android.database.StaleDataException: Attempting to access a closed CursorWindow.Most probable cause: cursor is deactivated prior to calling this method.
        at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:139)
        at android.database.AbstractWindowedCursor.getLong(AbstractWindowedCursor.java:74)
        at android.database.CursorWrapper.getLong(CursorWrapper.java:127)
        at com.example.android.mygarden.ui.PlantListAdapter.onBindViewHolder(PlantListAdapter.java:71)
        at com.example.android.mygarden.ui.PlantListAdapter.onBindViewHolder(PlantListAdapter.java:32)
        at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6673)
        at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6714)
        at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5647)
        at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5913)
        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5752)
        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5748)
        at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2232)
        at android.support.v7.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:556)
        at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1519)
        at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:614)
        at android.support.v7.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:170)
        at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3812)
        at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3529)
        at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:4082)
        at android.view.View.layout(View.java:18799)
Regev654 commented 6 years ago

I created a pull request that solves this issue: https://github.com/udacity/AdvancedAndroid_MyGarden/pull/9

elmahdiben commented 6 years ago

this solves it https://github.com/udacity/AdvancedAndroid_MyGarden/pull/12/commits/0a5bad8cb24ffcdd224697f283ba58bb37f5f853

Ni3verma commented 5 years ago

in plantListAdapter.java -> swapCursor method: change if condition to this new if: if (mCursor != null && mCursor != newCursor)

Tarek-Bohdima commented 3 years ago

https://github.com/udacity/AdvancedAndroid_MyGarden/pull/11/commits/c6769ba1aec625cd52a2dbdc5d0e6af1b9a1fc19 here is the answer