alibaba / Tangram-Android

Tangram is a modular UI solution for building native page dynamically including Tangram for Android, Tangram for iOS and even backend CMS. This project provides the sdk on Android.
http://tangram.pingguohe.net/
MIT License
4.11k stars 526 forks source link

LayoutViewHolder cannot be cast to BinderViewHolder #132

Open chailijun opened 5 years ago

chailijun commented 5 years ago

按照Demo配置后出现如下crash:

 java.lang.ClassCastException: com.alibaba.android.vlayout.VirtualLayoutManager$LayoutViewHolder cannot be cast to com.tmall.wireless.tangram.core.adapter.BinderViewHolder
    at com.tmall.wireless.tangram.core.adapter.GroupBasicAdapter.onViewRecycled(GroupBasicAdapter.java:57)
    at android.support.v7.widget.RecyclerView$Recycler.dispatchViewRecycled(RecyclerView.java:6379)
    at android.support.v7.widget.RecyclerView$Recycler.addViewHolderToRecycledViewPool(RecyclerView.java:6150)
    at android.support.v7.widget.RecyclerView$Recycler.recycleViewHolderInternal(RecyclerView.java:6111)
    at android.support.v7.widget.RecyclerView$LayoutManager.scrapOrRecycleView(RecyclerView.java:8820)
    at android.support.v7.widget.RecyclerView$LayoutManager.detachAndScrapAttachedViews(RecyclerView.java:8805)
    at com.alibaba.android.vlayout.VirtualLayoutManager.detachAndScrapAttachedViews(VirtualLayoutManager.java:1409)
    at com.alibaba.android.vlayout.ExposeLinearLayoutManagerEx.onLayoutChildren(ExposeLinearLayoutManagerEx.java:343)
    at com.alibaba.android.vlayout.VirtualLayoutManager.onLayoutChildren(VirtualLayoutManager.java:504)
    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:20836)
    at android.view.ViewGroup.layout(ViewGroup.java:6401)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:20836)
    at android.view.ViewGroup.layout(ViewGroup.java:6401)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
    at android.view.View.layout(View.java:20836)
    at android.view.ViewGroup.layout(ViewGroup.java:6401)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:20836)
    at android.view.ViewGroup.layout(ViewGroup.java:6401)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
    at android.view.View.layout(View.java:20836)
    at android.view.ViewGroup.layout(ViewGroup.java:6401)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
    at android.view.View.layout(View.java:20836)
    at android.view.ViewGroup.layout(ViewGroup.java:6401)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:20836)
    at android.view.ViewGroup.layout(ViewGroup.java:6401)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
    at android.view.View.layout(View.java:20836)
    at android.view.ViewGroup.layout(ViewGroup.java:6401)
    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:944)
    at android.view.View.layout(View.java:20836)
    at android.view.ViewGroup.layout(ViewGroup.java:6401)
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2976)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2635)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1779)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7810)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
    at android.view.Choreographer.doCallbacks(Choreographer.java:723)
    at android.view.Choreographer.doFrame(Choreographer.java:658)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
    at android.os.Handler.handleCallback(Handler.java:789)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6938)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
chailijun commented 5 years ago

很神奇,啥都没改,5分钟后又没问题了(害怕什么时候突然又出现了)