【问题标题】:NoSuchMethodError: No virtual method removeOnPageChangeListenerNoSuchMethodError:没有虚拟方法 removeOnPageChangeListener
【发布时间】:2017-02-18 11:04:14
【问题描述】:

我正在使用ongakuer/CircleIndicator 库来添加浏览器指示器。我已经使用了示例代码,只是将一个小的 codecustomViewpager.addOnPageChangeListener 更改为 customViewpager.setOnPageChangeListener,因为它显示编译错误。之后没有编译错误。

当我运行活动时,我立即收到以下错误:

java.lang.NoSuchMethodError: No virtual method removeOnPageChangeListener(Landroid/support/v4/view/ViewPager$OnPageChangeListener;)V in class Landroid/support/v4/view/ViewPager; or its super classes (declaration of 'android.support.v4.view.ViewPager' appears in /data/app/com.app.app-2/base.apk)
            at me.relex.circleindicator.CircleIndicator.setViewPager(CircleIndicator.java:127)
            at com.app.app.ViewpagerActivity.onCreate(ViewpagerActivity.java:24)
            at android.app.Activity.performCreate(Activity.java:5990)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
            at android.app.ActivityThread.access$800(ActivityThread.java:151)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5254)
            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:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

【问题讨论】:

  • 你找到解决这个问题的方法了吗?
  • @IgorGanapolsky 后来我决定放弃使用这个库的想法。如果我使用它,我会告诉你。

标签: android


【解决方案1】:

遇到了与RecyclerView.Adapter 类似的问题-

java.lang.NoSuchMethodError: No virtual method setAdapterCount ...

使缓存无效,然后重新启动 Android Studio 解决了我的错误。 You can find directions to invalidate caches in IntelliJ (the software Android Studio is built upon) at this link.

【讨论】:

  • 任何解决方案..?
  • 如前所述-“使缓存无效,然后重新启动 Android Studio”对我有用
  • 这篇文章可以通过链接来改进,指向如何查找和使 Android Studio 缓存失效!更新:已编辑。
  • 通过清理和重建使无效并重新启动是为我解决的问题。
  • 很遗憾,因为它现在不工作了
【解决方案2】:

我遇到了同样的问题,就我而言,解决方案如下:

解决办法:

  • 转到 SDK 管理器
  • 转到 SDK 工具 标签。
  • 确保安装最新版本的 Android 支持库,rev 22
  • 现在再次尝试运行您的应用。

说明:

  • removeOnPageChangeListener 仅在 support-v4 库的修订版 22 中添加。
  • 出于某种原因,Android Studio 不会让您知道您没有下载并安装完整的修订版。

【讨论】:

    【解决方案3】:

    当我使用与我的其他支持库不兼容的 support-v4 库版本时出现此错误:

    compile ('com.android.support:support-v4:22.1.1') {
        // Force stable version of support-v4
        force = true
    }
    

    不幸的是,我找到的唯一解决方案是从我的构建中完全删除 support-v4 库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-28
      • 1970-01-01
      • 2020-10-28
      • 2019-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多