lsjwzh / RecyclerViewPager

Deprecated
Apache License 2.0
3.53k stars 667 forks source link

Always occur. NoSuchFieldException: No field mPosition in class #102

Closed bhbfhfb closed 8 years ago

bhbfhfb commented 8 years ago

Always occur.

Version: compile 'com.android.support:support-annotations:23.4.0' compile 'com.android.support:recyclerview-v7:23.4.0' compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:support-v4:23.4.0' compile 'com.android.support:design:23.4.0' compile 'com.github.lsjwzh.RecyclerViewPager:lib:v1.1.0'

Holder private static final class CrowdHolder extends RecyclerView.ViewHolder { public CrowdHolder(View itemView) { super(itemView); } }

Warning java.lang.NoSuchFieldException: No field mPosition in class ????$CrowdHolder; at java.lang.Class.getDeclaredField(Native Method) at com.lsjwzh.widget.recyclerviewpager.LoopRecyclerViewPagerAdapter.onBindViewHolder(LoopRecyclerViewPagerAdapter.java:50) at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5471) at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5504) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4741) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617) at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994) at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1390) at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353) at android.support.v7.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1180) at android.support.v7.widget.LinearLayoutManager.scrollHorizontallyBy(LinearLayoutManager.java:1019) at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:4057) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) at android.view.Choreographer.doCallbacks(Choreographer.java:670) at android.view.Choreographer.doFrame(Choreographer.java:603) 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:5417) 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) java.lang.NullPointerException: Attempt to invoke virtual method 'void java.lang.reflect.Field.set(java.lang.Object, java.lang.Object)' on a null object reference at com.lsjwzh.widget.recyclerviewpager.LoopRecyclerViewPagerAdapter.onBindViewHolder(LoopRecyclerViewPagerAdapter.java:57) at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5471) at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5504) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4741) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617) at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994) at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1390) at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353) at android.support.v7.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1180) at android.support.v7.widget.LinearLayoutManager.scrollHorizontallyBy(LinearLayoutManager.java:1019) at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:4057) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) at android.view.Choreographer.doCallbacks(Choreographer.java:670) at android.view.Choreographer.doFrame(Choreographer.java:603) 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:5417) 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)

ncornette commented 8 years ago

I experience the same issue, LoopRecyclerViewPagerAdapter.onBindViewHolder() is trying to access and update the private field RecyclerView.ViewHolder.mPosition which is a really bad idea !

vedantaggrawal commented 8 years ago

is this issue resolved, if yes, can someone help me fix it asap. I am facing the same issue.Thanks

adroitandroid commented 8 years ago

Same. On switching to RecyclerViewPager, I'm still getting the exception 06-30 03:16:47.072 7890-7890/ E/AndroidRuntime: FATAL EXCEPTION: main java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. at android.view.ViewGroup.addViewInner(ViewGroup.java:3382) at android.view.ViewGroup.addView(ViewGroup.java:3253) at android.view.ViewGroup.addView(ViewGroup.java:3198) at android.support.v7.widget.RecyclerView$5.addView(RecyclerView.java:611) at android.support.v7.widget.ChildHelper.addView(ChildHelper.java:107) at android.support.v7.widget.RecyclerView$LayoutManager.addViewInt(RecyclerView.java:6728) at android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:6686) at android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:6674) at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1404) at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353) at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574) at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3028) at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:2625) at android.view.View.measure(View.java:15227) at android.widget.RelativeLayout.measureChild(RelativeLayout.java:602) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:415) at android.view.View.measure(View.java:15227) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4820) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135) at android.view.View.measure(View.java:15227) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4820) at android.support.v7.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:391) at android.view.View.measure(View.java:15227) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4820) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at android.view.View.measure(View.java:15227) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4820) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390) at android.widget.LinearLayout.measureVertical(LinearLayout.java:681) at android.widget.LinearLayout.onMeasure(LinearLayout.java:574) at android.view.View.measure(View.java:15227) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4820) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2189) at android.view.View.measure(View.java:15227) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1934) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1128) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1311) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1026) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4369) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) at android.view.Choreographer.doCallbacks(Choreographer.java:555) at android.view.Choreographer.doFrame(Choreographer.java:525) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4797) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:776) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:543) at dalvik.system.NativeStart.main(Native Method) Any help?