【问题标题】:Android Recycle View LogCat: Could not find methodAndroid Recycle View LogCat:找不到方法
【发布时间】:2016-07-11 18:12:34
【问题描述】:

我使用了 Android 支持库中的 RecyclerView。在带有 Android 4.1.2 (API 16) 的三星 Galaxy S2 上运行时,一切正常,但在 Logcat 中我看到消息:

03-24 I/dalvikvm: DexOpt: illegal method access (call Landroid/support/v7/widget/RecyclerView$ViewHolder;.isUpdated ()Z from Lnet/mytest/TransactionsAdapter$TransactionsAdapterViewHolder;)
03-24 I/dalvikvm: Could not find method android.support.v7.widget.RecyclerView$ViewHolder.isUpdated, referenced from method net.mytest.TransactionsAdapter$TransactionsAdapterViewHolder.access$super
03-24 W/dalvikvm: VFY: unable to resolve virtual method 16775: Landroid/support/v7/widget/RecyclerView$ViewHolder;.isUpdated ()Z
03-24 D/dalvikvm: VFY: replacing opcode 0x6f at 0x0031
03-24 I/dalvikvm: DexOpt: illegal method access (call Landroid/support/v7/widget/RecyclerView$ViewHolder;.flagRemovedAndOffsetPosition (IIZ)V from Lnet/mytest/TransactionsAdapter$TransactionsAdapterViewHolder;)
03-24 I/dalvikvm: Could not find method android.support.v7.widget.RecyclerView$ViewHolder.flagRemovedAndOffsetPosition, referenced from method net.mytest.TransactionsAdapter$TransactionsAdapterViewHolder.access$super
03-24 W/dalvikvm: VFY: unable to resolve virtual method 16759: Landroid/support/v7/widget/RecyclerView$ViewHolder;.flagRemovedAndOffsetPosition (IIZ)V
03-24 D/dalvikvm: VFY: replacing opcode 0x6f at 0x0053
03-24 I/dalvikvm: DexOpt: illegal method access (call Landroid/support/v7/widget/RecyclerView$ViewHolder;.isRemoved ()Z from Lnet/mytest/TransactionsAdapter$TransactionsAdapterViewHolder;)
03-24 I/dalvikvm: Could not find method android.support.v7.widget.RecyclerView$ViewHolder.isRemoved, referenced from method net.mytest.TransactionsAdapter$TransactionsAdapterViewHolder.access$super
03-24 W/dalvikvm: VFY: unable to resolve virtual method 16772: Landroid/support/v7/widget/RecyclerView$ViewHolder;.isRemoved ()Z
03-24 D/dalvikvm: VFY: replacing opcode 0x6f at 0x0058
03-24 I/dalvikvm: DexOpt: illegal method access (call Landroid/support/v7/widget/RecyclerView$ViewHolder;.clearPayload ()V from Lnet/mytest/TransactionsAdapter$TransactionsAdapterViewHolder;)
03-24 I/dalvikvm: Could not find method android.support.v7.widget.RecyclerView$ViewHolder.clearPayload, referenced from method net.mytest.TransactionsAdapter$TransactionsAdapterViewHolder.access$super
03-24 W/dalvikvm: VFY: unable to resolve virtual method 16754: Landroid/support/v7/widget/RecyclerView$ViewHolder;.clearPayload ()V
03-24 D/dalvikvm: VFY: replacing opcode 0x6f at 0x007c
03-24 I/dalvikvm: DexOpt: illegal method access (call Landroid/support/v7/widget/RecyclerView$ViewHolder;.isAdapterPositionUnknown ()Z from Lnet/mytest/TransactionsAdapter$TransactionsAdapterViewHolder;)
03-24 I/dalvikvm: Could not find method android.support.v7.widget.RecyclerView$ViewHolder.isAdapterPositionUnknown, referenced from method net.mytest.TransactionsAdapter$TransactionsAdapterViewHolder.access$super
03-24 W/dalvikvm: VFY: unable to resolve virtual method 16768: Landroid/support/v7/widget/RecyclerView$ViewHolder;.isAdapterPositionUnknown ()Z
03-24 D/dalvikvm: VFY: replacing opcode 0x6f at 0x0086
03-24 I/dalvikvm: DexOpt: illegal method access (call Landroid/support/v7/widget/RecyclerView$ViewHolder;.offsetPosition (IZ)V from Lnet/mytest/TransactionsAdapter$TransactionsAdapterViewHolder;)
03-24 I/dalvikvm: Could not find method android.support.v7.widget.RecyclerView$ViewHolder.offsetPosition, referenced from method net.mytest.TransactionsAdapter$TransactionsAdapterViewHolder.access$super
03-24 W/dalvikvm: VFY: unable to resolve virtual method 16777: Landroid/support/v7/widget/RecyclerView$ViewHolder;.offsetPosition (IZ)V
03-24 D/dalvikvm: VFY: replacing opcode 0x6f at 0x00ad
03-24 I/dalvikvm: DexOpt: illegal method access (call Landroid/support/v7/widget/RecyclerView$ViewHolder;.shouldIgnore ()Z from Lnet/mytest/TransactionsAdapter$TransactionsAdapterViewHolder;)
03-24 I/dalvikvm: Could not find method android.support.v7.widget.RecyclerView$ViewHolder.shouldIgnore, referenced from method net.mytest.TransactionsAdapter$TransactionsAdapterViewHolder.access$super
03-24 W/dalvikvm: VFY: unable to resolve virtual method 16786: Landroid/support/v7/widget/RecyclerView$ViewHolder;.shouldIgnore ()Z
03-24 D/dalvikvm: VFY: replacing opcode 0x6f at 0x00b9
03-24 I/dalvikvm: DexOpt: illegal method access (call Landroid/support/v7/widget/RecyclerView$ViewHolder;.setFlags (II)V from Lnet/mytest/TransactionsAdapter$TransactionsAdapterViewHolder;)
03-24 I/dalvikvm: Could not find method android.support.v7.widget.RecyclerView$ViewHolder.setFlags, referenced from method net.mytest.TransactionsAdapter$TransactionsAdapterViewHolder.access$super
03-24 W/dalvikvm: VFY: unable to resolve virtual method 16782: Landroid/support/v7/widget/RecyclerView$ViewHolder;.setFlags (II)V
03-24 D/dalvikvm: VFY: replacing opcode 0x6f at 0x00d4
03-24 I/dalvikvm: DexOpt: illegal method access (call Landroid/support/v7/widget/RecyclerView$ViewHolder;.addChangePayload (Ljava/lang/Object;)V from Lnet/mytest/TransactionsAdapter$TransactionsAdapterViewHolder;)
03-24 I/dalvikvm: Could not find method android.support.v7.widget.RecyclerView$ViewHolder.addChangePayload, referenced from method net.mytest.TransactionsAdapter$TransactionsAdapterViewHolder.access$super
03-24 W/dalvikvm: VFY: unable to resolve virtual method 16751: Landroid/support/v7/widget/RecyclerView$ViewHolder;.addChangePayload (Ljava/lang/Object;)V
03-24 D/dalvikvm: VFY: replacing opcode 0x6f at 0x00dc

我应该担心这些消息吗?

【问题讨论】:

    标签: android android-studio android-support-library android-recyclerview logcat


    【解决方案1】:

    看这个答案https://stackoverflow.com/a/18600156/1852441

    基本上,您没有调用正确的方法。您将不得不调用相应的“支持”方法。

    例如。从 v14 调用 getActionBar() 而不是从 v7 调用 getSupportActionBar() 将导致此问题。

    确保调用支持方法,此错误就会消失。

    【讨论】:

      猜你喜欢
      • 2016-11-05
      • 1970-01-01
      • 2014-01-16
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      • 2020-03-12
      • 2014-05-23
      • 1970-01-01
      相关资源
      最近更新 更多