【问题标题】:NoSuchMethodError while using setCustomInsertionActionModeCallback for API<23使用 API <23 的 setCustomInsertionActionModeCallback 时出现 NoSuchMethodError
【发布时间】:2016-06-30 18:00:36
【问题描述】:

我正在使用 Nexus 6 (API 22)。当用户长按 Edittext 时,我想添加更多选项。通常当我们长按 Edittext 时,会出现粘贴弹出菜单,我想在粘贴菜单中添加更多功能。

Android 文档说,当我们实现 setCustomInsertionActionModeCallback 时,我们可以覆盖该行为,但在我的情况下它不起作用。但在 Nexus 6P (API 23) 中它工作正常。任何帮助将不胜感激。

这是我在实现 setCustomInsertionActionModeCallback 时遇到的错误

java.lang.NoSuchMethodError: No virtual method setCustomInsertionActionModeCallback(Landroid/view/ActionMode$Callback;)V in class L/view/WriterEditText; or its super classes (declaration of 'view.WriterEditText' appears in /data/app/-1/base.apk)
         at .EditorViewManager.createEditText(EditorViewManager.java:79)
         at render.EditorViewManager.createViewAtIndex(EditorViewManager.java:207)
         at render.Renderer.renderContent1(Renderer.java:158)
         at render.Renderer.renderContent(Renderer.java:135)
         at .render.Renderer.reloadDocument(Renderer.java:704)
         at EditorActivity.onCreate(EditorActivity.java:89)
         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)

【问题讨论】:

    标签: android android-edittext android-6.0-marshmallow


    【解决方案1】:

    该方法是在 API 级别 23 中添加的。您不能在旧设备上使用它。欢迎您在Build 版本检查中结束您的电话:

    if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.M) {
      // call that method
    }
    

    【讨论】:

    • 感谢您的回复。有什么方法可以访问当我们长按edittext时显示的粘贴弹出菜单?
    • @vijay:抱歉,我没有调查过。
    • 您知道 API 级别 22 上此操作的任何替代方法吗?
    • @user2751809:没有,但我也没有去找。
    猜你喜欢
    • 2015-07-18
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    • 2014-09-18
    • 2012-01-05
    • 1970-01-01
    相关资源
    最近更新 更多