Status Update
Comments
al...@android.com <al...@android.com>
yb...@google.com <yb...@google.com> #2
Hmm preInfo should not be null in that case.
Can you provide a sample application where I can reproduce the error?
Can you provide a sample application where I can reproduce the error?
ee...@gmail.com <ee...@gmail.com> #3
Not right now, maybe this weekend I can write a sample application to show the error, but my app is in the market, I can provide you the link however its not available for US right now. The problem happen when scrolling in a screen with a recyclerView.
I have deactivated the Animations setting the animator to null and that works as a workaround for the crash, so it might be related to the enter animation in the RecyclerView when notifyItemInserted() triggers...
I have deactivated the Animations setting the animator to null and that works as a workaround for the crash, so it might be related to the enter animation in the RecyclerView when notifyItemInserted() triggers...
ee...@gmail.com <ee...@gmail.com> #4
Also if its usefull for you I have downgraded to support 23.0.1 and couldn't reproduce the problem so It might be something related to the changes between 23.0.1 and 23.1.0. If you need anything else from me please comment.
yb...@google.com <yb...@google.com> #5
Yes this stack trace is part of the new animation API so it makes sense to be related to 23.1 . We'll soon release 23.1.1 which fixes some issues.
Can you try with that and if it is still broken, attach a sample app to reproduce the error?
Can you try with that and if it is still broken, attach a sample app to reproduce the error?
al...@gmail.com <al...@gmail.com> #6
Issue still exists in 23.1.1.
I have a fragment with coordinator layout and viewpager inside of it. In each viewpager's fragments there is a swiperefreshlayout with recycler view in it with staggered grid layout manager.
This error occurs when user navigates back from the screen (onBackPressed() is calling). Can't reproduce it stably.
java.lang.NullPointerException: Attempt to read from field 'int android.support.v7.widget.RecyclerView$ItemAnimator$ItemHolderInfo.left' on a null object reference
at android.support.v7.widget.SimpleItemAnimator.animateChange(SimpleItemAnimator.java:130)
at android.support.v7.widget.RecyclerView.animateChange(RecyclerView.java:3062)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2924)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3071)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:584)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1037)
at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:747)
at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:761)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1043)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java
I have a fragment with coordinator layout and viewpager inside of it. In each viewpager's fragments there is a swiperefreshlayout with recycler view in it with staggered grid layout manager.
This error occurs when user navigates back from the screen (onBackPressed() is calling). Can't reproduce it stably.
java.lang.NullPointerException: Attempt to read from field 'int android.support.v7.widget.RecyclerView$ItemAnimator$ItemHolderInfo.left' on a null object reference
at android.support.v7.widget.SimpleItemAnimator.animateChange(SimpleItemAnimator.java:130)
at android.support.v7.widget.RecyclerView.animateChange(RecyclerView.java:3062)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2924)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3071)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:584)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1037)
at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:747)
at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:761)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1043)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java
yb...@google.com <yb...@google.com> #7
Hmm, looks like it happens when we have an old change holder but no pre-layout-information for it.
Either predictive animation is disabled at this layout causing this issue or RV is not catching some case properly. In any case, that parameter is marked as NotNull thus should never be null .
I've created an internal ticket but it will take a me a while to get into this as the problem is not obvious and i'm quite busy right now to reproduce but if you provide a reproduceable example, I can look at it since it is much easier in that case.
Thanks.
Either predictive animation is disabled at this layout causing this issue or RV is not catching some case properly. In any case, that parameter is marked as NotNull thus should never be null .
I've created an internal ticket but it will take a me a while to get into this as the problem is not obvious and i'm quite busy right now to reproduce but if you provide a reproduceable example, I can look at it since it is much easier in that case.
Thanks.
an...@framna.com <an...@framna.com> #8
Not sure if this is the only case in which it happens, but it happens for sure if you have an adapter which claims to have stable IDs but returns the same ID for two different positions. When you notify of a change, you will get this crash (even if you notify on all of the positions that share the ID).
The easiest reproducible case is if you implement a getItemId that just returns a constant value and do notifyItemChanged(0) on the adapter (where the adapter has more than one item). This did not crash in 23.0.1 (though causes a buggy animation as one would expect).
I guess that RecyclerView doesn't support an adapter that doesn't actually return unique IDs, but in this case possibly the error should be more descriptive.
As I said, there may be other cases where this happens even if the adapter is well-behaved.
The easiest reproducible case is if you implement a getItemId that just returns a constant value and do notifyItemChanged(0) on the adapter (where the adapter has more than one item). This did not crash in 23.0.1 (though causes a buggy animation as one would expect).
I guess that RecyclerView doesn't support an adapter that doesn't actually return unique IDs, but in this case possibly the error should be more descriptive.
As I said, there may be other cases where this happens even if the adapter is well-behaved.
yb...@google.com <yb...@google.com> #9
#9 That kind of adapter bug will create all sorts of problems. I understand expecting a better error but RecyclerView does not try to validate an Adapter implementation. It is up to the developer to test their adapter because doing this in RecyclerView will come with significant runtime performance & complexity cost.
ar...@gmail.com <ar...@gmail.com> #10
I have the same issue. Here is mine stacktrace:
java.lang.NullPointerException: Attempt to read from field 'int android.support.v7.widget.RecyclerView$ItemAnimator$ItemHolderInfo.left' on a null object reference
at android.support.v7.widget.SimpleItemAnimator.animateChange(SimpleItemAnimator.java:130)
at android.support.v7.widget.RecyclerView.animateChange(RecyclerView.java:3062)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2924)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3071)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1627)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1037)
at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:747)
at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1156)
at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:760)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at com.flipboard.bottomsheet.BottomSheetLayout.onLayout(BottomSheetLayout.java:208)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1043)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2171)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1931)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.d
java.lang.NullPointerException: Attempt to read from field 'int android.support.v7.widget.RecyclerView$ItemAnimator$ItemHolderInfo.left' on a null object reference
at android.support.v7.widget.SimpleItemAnimator.animateChange(SimpleItemAnimator.java:130)
at android.support.v7.widget.RecyclerView.animateChange(RecyclerView.java:3062)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2924)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3071)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1627)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1037)
at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:747)
at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1156)
at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:760)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at com.flipboard.bottomsheet.BottomSheetLayout.onLayout(BottomSheetLayout.java:208)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1043)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2171)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1931)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.d
yb...@google.com <yb...@google.com> #11
#11 do you have a sample app to reproduce the issue ?
ar...@gmail.com <ar...@gmail.com> #12
Well. I made a sample app with stable crash.
Probably the problem occurs when I try to add duplicate item to an adapter and then apply some structural changes.
When I add a new object with the same ID nothing happens.
I don't know exactly if it an only case. But I gonna try to fix duplicates in my app and then check for this crash.
Probably the problem occurs when I try to add duplicate item to an adapter and then apply some structural changes.
When I add a new object with the same ID nothing happens.
I don't know exactly if it an only case. But I gonna try to fix duplicates in my app and then check for this crash.
yb...@google.com <yb...@google.com> #13
#13 thanks for the demo.
I quickly checked your app and unfortunately, it is a bug in your app not in RecyclerView.
Stable Ids have to be stable & unique.
Your id is declared as
@Override
public long getItemId(final int position) {
return get(position).getTitle().hashCode();
}
So when you add the same city twice, you end up with two items that have the same ID which is not supported. Also, as a side note, don't use hashCode as stable ids. You cannot rely on them as they are not necessarily unique.
I quickly checked your app and unfortunately, it is a bug in your app not in RecyclerView.
Stable Ids have to be stable & unique.
Your id is declared as
@Override
public long getItemId(final int position) {
return get(position).getTitle().hashCode();
}
So when you add the same city twice, you end up with two items that have the same ID which is not supported. Also, as a side note, don't use hashCode as stable ids. You cannot rely on them as they are not necessarily unique.
ar...@gmail.com <ar...@gmail.com> #14
[Comment deleted]
ar...@gmail.com <ar...@gmail.com> #15
[Comment deleted]
ar...@gmail.com <ar...@gmail.com> #16
As I said, if I add a new item with the same ID, the app will not crash. And I know that ID should be unique. I think the recycler should throw an appropriate exception not just a NPE.
Btw on 22.* version everything is fine even with non unique IDs. ;)
P.s.: In my work application I checked all ids and they are unique. But the NPE is still here.
I'll try to find more info about it.
Btw on 22.* version everything is fine even with non unique IDs. ;)
P.s.: In my work application I checked all ids and they are unique. But the NPE is still here.
I'll try to find more info about it.
yb...@google.com <yb...@google.com> #17
It would actually never work fine before as well, just may not crash. RecyclerView could be showing wrong views to the user when stable ids are not stable and unique.
Fixing this crash w/ a null check trivial but I wont to get to the bottom of this to see why it happens and fix that instead. These constraints (nonnull in thsi case) help make the code more stable / cleaner.
Looking forward to another sample app, hope you can figure it out.
Fixing this crash w/ a null check trivial but I wont to get to the bottom of this to see why it happens and fix that instead. These constraints (nonnull in thsi case) help make the code more stable / cleaner.
Looking forward to another sample app, hope you can figure it out.
ta...@gmail.com <ta...@gmail.com> #18
After refactoring some code to replace all calls to RecyclerView.Adapter.notifyDataSetChanged() with the more specific notifyItem{Inserted,Removed,...} variants, the crash seems to have gone away for me.
The bug could possibly have been triggered by something else that changed during the refactoring, but that seemed like the most relevant change.
The bug could possibly have been triggered by something else that changed during the refactoring, but that seemed like the most relevant change.
yb...@google.com <yb...@google.com> #19
So the only time we've received this bug is when stable & unique ids are not stable and unique.
Unfortunately, if we change RV to track this, it will add additional runtime cost which properly implemented applications should not pay.
What I'll do is go ahead and add a null check to the place where null is unexpected. If it is null, RV will check if this multiple VHs have the same change id. If thats the case, we'll crash with the exception clarifying the error so that developer can fix their code.
If it is not the case, it will crash with a generic IllegalStateException with the list of ViewHolders so that we can collect more information about the case.
Unfortunately, if we change RV to track this, it will add additional runtime cost which properly implemented applications should not pay.
What I'll do is go ahead and add a null check to the place where null is unexpected. If it is null, RV will check if this multiple VHs have the same change id. If thats the case, we'll crash with the exception clarifying the error so that developer can fix their code.
If it is not the case, it will crash with a generic IllegalStateException with the list of ViewHolders so that we can collect more information about the case.
yb...@google.com <yb...@google.com> #20
So I've changed RV code to detect this error and check if it happens because of duplicate ids.
If so, it'll crash with proper exception.
If not, it will only log an error and move on. To clarify, there is really no expected use case for this so it is still an error so if you are seeing the log (not the crash), please report back and we can investigate further,
If so, it'll crash with proper exception.
If not, it will only log an error and move on. To clarify, there is really no expected use case for this so it is still an error so if you are seeing the log (not the crash), please report back and we can investigate further,
ma...@gmail.com <ma...@gmail.com> #21
[Comment deleted]
si...@gmail.com <si...@gmail.com> #22
How can I downgrade to to support 23.0.1?
ja...@gmail.com <ja...@gmail.com> #23
@23
configurations.all {
resolutionStrategy.force 'com.android.support:recyclerview-v7:23.0.1'
}
configurations.all {
resolutionStrategy.force 'com.android.support:recyclerview-v7:23.0.1'
}
re...@gmail.com <re...@gmail.com> #24
I have this issue while upgrading from 23.1.1 to 23.2.0 using a RecyclerView. I did not override getItemId
yb...@google.com <yb...@google.com> #25
#25 do you have a sample app to reproduce ?
af...@gmail.com <af...@gmail.com> #26
I've encountered a similar error when upgrading from 23.1.1 to 23.2.0 (happening in animateDisapperance instead of animateChange though). Stack trace added below. I am attempting to create a sample app that replicates the issue, but it's proving tricky to replicate (note: this does happen every time in our app.
java.lang.NullPointerException: Attempt to read from field 'int android.support.v7.widget.RecyclerView$ItemAnimator$ItemHolderInfo.left' on a null object reference
at android.support.v7.widget.SimpleItemAnimator.animateDisappearance(SimpleItemAnimator.java:78)
at android.support.v7.widget.RecyclerView.animateDisappearance(RecyclerView.java:3246)
at android.support.v7.widget.RecyclerView.access$700(RecyclerView.java:147)
at android.support.v7.widget.RecyclerView$4.processDisappeared(RecyclerView.java:422)
at android.support.v7.widget.ViewInfoStore.process(ViewInfoStore.java:231)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3086)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2914)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3277)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1183)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2171)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1931)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:606)
java.lang.NullPointerException: Attempt to read from field 'int android.support.v7.widget.RecyclerView$ItemAnimator$ItemHolderInfo.left' on a null object reference
at android.support.v7.widget.SimpleItemAnimator.animateDisappearance(SimpleItemAnimator.java:78)
at android.support.v7.widget.RecyclerView.animateDisappearance(RecyclerView.java:3246)
at android.support.v7.widget.RecyclerView.access$700(RecyclerView.java:147)
at android.support.v7.widget.RecyclerView$4.processDisappeared(RecyclerView.java:422)
at android.support.v7.widget.ViewInfoStore.process(ViewInfoStore.java:231)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3086)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2914)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3277)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1183)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678)
at android.view.View.layout(View.java:16630)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2171)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1931)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:606)
af...@gmail.com <af...@gmail.com> #27
Follow-up comment to #27, we do not use setHasStableIds(true) or override getItemId in our adapter.
yb...@google.com <yb...@google.com> #28
#27 there was a bug where a changed item disappears, we were getting NPE. The stack trace is different but maybe this is also what is happening in your case?
That was bug reported here:
https://code.google.com/p/android/issues/detail?id=202136
And is already fixed and waiting for release.
That was bug reported here:
And is already fixed and waiting for release.
af...@gmail.com <af...@gmail.com> #29
Turns out the issue in #27 was resolved by changing the RecyclerView's height to match_parent instead of wrap_content.
yb...@google.com <yb...@google.com> #30
thats scary :/. I would appreciate if you can reproduce this error in a sample application.
af...@gmail.com <af...@gmail.com> #31
I'll continue to work on it. Should I open a separate issue if I am able to replicate it?
yb...@google.com <yb...@google.com> #32
you can add it here since I'm already tracking this one. Once you have a sample app, i'll re-open this issue. Thanks.
af...@gmail.com <af...@gmail.com> #33
Got it replicating. Crash happens every time on Nexus 5X running API 23.
Sample is made to match as closely to the app that discovered it. Note that the crash does not occur in 23.1.1, but does in 23.2. Let me know if there's any issues with the sample.
Sample is made to match as closely to the app that discovered it. Note that the crash does not occur in 23.1.1, but does in 23.2. Let me know if there's any issues with the sample.
yb...@google.com <yb...@google.com> #34
thanks a lot, i've re-opened the bug and will check your sample soon.
yb...@google.com <yb...@google.com> #35
thanks a lot, i can reproduce the error. Working on it.
yb...@google.com <yb...@google.com> #36
ok this happens when layout manager adds the view then removes it in the same measure pass.
RV tries to animate disappearance although the view is never really added (so there is no pre-info)
we'll simply recycle out the child.
thanks a lot!
RV tries to animate disappearance although the view is never really added (so there is no pre-info)
we'll simply recycle out the child.
thanks a lot!
yb...@google.com <yb...@google.com> #37
the isssue mentioned in #34 is fixed now and will be released in the next version.
cv...@gmail.com <cv...@gmail.com> #38
java.lang.NullPointerException: Attempt to read from field 'int android.support.v7.widget.RecyclerView$ItemAnimator$ItemHolderInfo.left' on a null object reference happens when simply calling recyclerview.scrollToPosition(position).
Can attach a simple project. StableID's (they are all unique). Also this new version seems to have photo loading issues as well.
Can attach a simple project. StableID's (they are all unique). Also this new version seems to have photo loading issues as well.
yb...@google.com <yb...@google.com> #39
idk what you mean by "to have photo loading issues as well." since RV does not handle any photo loading.
I would appreciate a sample project so that I can look at it.
I would appreciate a sample project so that I can look at it.
ma...@gmail.com <ma...@gmail.com> #40
We are seeing this issue since we updated to version 23.2.0 of the support libraries. There are only 2 reports so far: I both cases, the user was simply reordering the list via drag. Marshmallow and Lollipop. I have not been able myself to reproduce the error.
We neither use setHasStableIds(boolean) nor getItemId(int).
Fragment:https://github.com/AntennaPod/AntennaPod/blob/develop/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java#L475
Adapter:https://github.com/AntennaPod/AntennaPod/blob/develop/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java
We neither use setHasStableIds(boolean) nor getItemId(int).
Fragment:
Adapter:
ds...@gmail.com <ds...@gmail.com> #41
java.lang.NullPointerException
at android.support.v7.widget.SimpleItemAnimator.animateDisappearance(SimpleItemAnimator.java:78)
at android.support.v7.widget.RecyclerView.animateDisappearance(RecyclerView.java:3246)
at android.support.v7.widget.RecyclerView.access$700(RecyclerView.java:147)
at android.support.v7.widget.RecyclerView$4.processDisappeared(RecyclerView.java:422)
at android.support.v7.widget.ViewInfoStore.process(ViewInfoStore.java:231)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3086)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2914)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3277)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:122)
at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1139)
at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:810)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1183)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2026)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1783)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1039)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5648)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.ja
at android.support.v7.widget.SimpleItemAnimator.animateDisappearance(SimpleItemAnimator.java:78)
at android.support.v7.widget.RecyclerView.animateDisappearance(RecyclerView.java:3246)
at android.support.v7.widget.RecyclerView.access$700(RecyclerView.java:147)
at android.support.v7.widget.RecyclerView$4.processDisappeared(RecyclerView.java:422)
at android.support.v7.widget.ViewInfoStore.process(ViewInfoStore.java:231)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3086)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2914)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3277)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:122)
at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1139)
at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:810)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1183)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14845)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2026)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1783)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1039)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5648)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.ja
zo...@gmail.com <zo...@gmail.com> #42
yh...@gmail.com <yh...@gmail.com> #43
Same issue with #27, #42 on version 23.2.0. #30 doesn't fix my problem.
Confirmed version 23.2.1 fixes my problem. Thanks.
Confirmed version 23.2.1 fixes my problem. Thanks.
[Deleted User] <[Deleted User]> #44
This is still happening for me
Process: com.tickledmedia.ParentTown, PID: 15390
java.lang.NullPointerException: Attempt to read from field 'int android.support.v7.widget.RecyclerView$ItemAnimator$ItemHolderInfo.left' on a null object reference
at android.support.v7.widget.SimpleItemAnimator.animateDisappearance(SimpleItemAnimator.java:78)
at android.support.v7.widget.RecyclerView.animateDisappearance(RecyclerView.java:3246)
at android.support.v7.widget.RecyclerView.access$700(RecyclerView.java:147)
at android.support.v7.widget.RecyclerView$4.processDisappeared(RecyclerView.java:422)
at android.support.v7.widget.ViewInfoStore.process(ViewInfoStore.java:231)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3086)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2914)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3277)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1735)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1579)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1488)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2179)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1939)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1115)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6023)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:606)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5422)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Tried switching to 23.2.1 / 23.3.0 but no luck
so basically i'm showing loader at first and then removing loader and adding new items to list
so flow is
notifiy Item added - The loader
notify item removed - The loader
notify item added - the actual data list
works cool for first time but crashes on loading next set of item with same flow as above
Process: com.tickledmedia.ParentTown, PID: 15390
java.lang.NullPointerException: Attempt to read from field 'int android.support.v7.widget.RecyclerView$ItemAnimator$ItemHolderInfo.left' on a null object reference
at android.support.v7.widget.SimpleItemAnimator.animateDisappearance(SimpleItemAnimator.java:78)
at android.support.v7.widget.RecyclerView.animateDisappearance(RecyclerView.java:3246)
at android.support.v7.widget.RecyclerView.access$700(RecyclerView.java:147)
at android.support.v7.widget.RecyclerView$4.processDisappeared(RecyclerView.java:422)
at android.support.v7.widget.ViewInfoStore.process(ViewInfoStore.java:231)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3086)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2914)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3277)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1735)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1579)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1488)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2179)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1939)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1115)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6023)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:606)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5422)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Tried switching to 23.2.1 / 23.3.0 but no luck
so basically i'm showing loader at first and then removing loader and adding new items to list
so flow is
notifiy Item added - The loader
notify item removed - The loader
notify item added - the actual data list
works cool for first time but crashes on loading next set of item with same flow as above
vi...@gmail.com <vi...@gmail.com> #45
na...@gmail.com <na...@gmail.com> #46
For me, same issue is happening . In gradle I added the dependency is
compile 'com.android.support:recyclerview-v7:23.2.0'
The logs are below.
FATAL EXCEPTION: main
01-10 14:43:33.239 17085 17085 E AndroidRuntime: Process: com.steroid.launcher, PID: 17085
01-10 14:43:33.239 17085 17085 E AndroidRuntime: java.lang.NullPointerException: Attempt to read from field 'int android.support.v7.widget.RecyclerView$ItemAnimator$ItemHolderInfo.left' on a null object reference
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.support.v7.widget.SimpleItemAnimator.animateDisappearance(SimpleItemAnimator.java:78)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.support.v7.widget.RecyclerView.animateDisappearance(RecyclerView.java:3246)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.support.v7.widget.RecyclerView.access$700(RecyclerView.java:147)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.support.v7.widget.RecyclerView$4.processDisappeared(RecyclerView.java:422)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.support.v7.widget.ViewInfoStore.process(ViewInfoStore.java:231)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3086)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2914)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3277)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1732)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.onLayout(LinearLayout.java:1497)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at com.android.launcher3.SlidingUpPanelLayout.onLayout(SlidingUpPanelLayout.java:588)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at com.android.launcher3.DragLayer.onLayout(DragLayer.java:525)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2694)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2171)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1931)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.Choreographer.doCallbac
compile 'com.android.support:recyclerview-v7:23.2.0'
The logs are below.
FATAL EXCEPTION: main
01-10 14:43:33.239 17085 17085 E AndroidRuntime: Process: com.steroid.launcher, PID: 17085
01-10 14:43:33.239 17085 17085 E AndroidRuntime: java.lang.NullPointerException: Attempt to read from field 'int android.support.v7.widget.RecyclerView$ItemAnimator$ItemHolderInfo.left' on a null object reference
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.support.v7.widget.SimpleItemAnimator.animateDisappearance(SimpleItemAnimator.java:78)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.support.v7.widget.RecyclerView.animateDisappearance(RecyclerView.java:3246)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.support.v7.widget.RecyclerView.access$700(RecyclerView.java:147)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.support.v7.widget.RecyclerView$4.processDisappeared(RecyclerView.java:422)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.support.v7.widget.ViewInfoStore.process(ViewInfoStore.java:231)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3086)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2914)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3277)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1732)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.onLayout(LinearLayout.java:1497)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at com.android.launcher3.SlidingUpPanelLayout.onLayout(SlidingUpPanelLayout.java:588)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at com.android.launcher3.DragLayer.onLayout(DragLayer.java:525)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2694)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.View.layout(View.java:16655)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5471)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2171)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1931)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
01-10 14:43:33.239 17085 17085 E AndroidRuntime: at android.view.Choreographer.doCallbac
yb...@google.com <yb...@google.com> #47
#48, 23.2 is super old, please use the latest version.
Description
java.lang.NullPointerException: Attempt to read from field 'int android.support.v7.widget.RecyclerView$ItemAnimator$ItemHolderInfo.left' on a null object reference
at android.support.v7.widget.SimpleItemAnimator.animateChange(SimpleItemAnimator.java:130)
at android.support.v7.widget.RecyclerView.animateChange(RecyclerView.java:3062)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2924)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3071)
at android.view.View.layout(View.java:15614)
at android.view.ViewGroup.layout(ViewGroup.java:4968)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:15614)
at android.view.ViewGroup.layout(ViewGroup.java:4968)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)
at android.widget.FrameLayout.onLayout(FrameLayout.java:508)
at android.view.View.layout(View.java:15614)
at android.view.ViewGroup.layout(ViewGroup.java:4968)
at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1037)
at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:747)
at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1133)
at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:760)
at android.view.View.layout(View.java:15614)
at android.view.ViewGroup.layout(ViewGroup.java:4968)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)
at android.widget.FrameLayout.onLayout(FrameLayout.java:508)
at android.view.View.layout(View.java:15614)
at android.view.ViewGroup.layout(ViewGroup.java:4968)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)
at android.widget.FrameLayout.onLayout(FrameLayout.java:508)
at android.view.View.layout(View.java:15614)
at android.view.ViewGroup.layout(ViewGroup.java:4968)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)
at android.widget.FrameLayout.onLayout(FrameLayout.java:508)
at android.view.View.layout(View.java:15614)
at android.view.ViewGroup.layout(ViewGroup.java:4968)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:15614)
at android.view.ViewGroup.layout(ViewGroup.java:4968)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)
at android.widget.FrameLayout.onLayout(FrameLayout.java:508)
at android.view.View.layout(View.java:15614)
at android.view.ViewGroup.layout(ViewGroup.java:4968)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2102)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1859)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1077)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5884)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5312)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)