当前位置: 首页 > 面试题库 >

InputConnection.finishComposedText()NullPointerException

仉伟兆
2023-03-14
问题内容

我在crashlytics上收到此错误日志。我不知道是什么原因导致了崩溃。它发生在Android 4.x,5.x,6.x设备上。(三星,索尼,LGE等)

Fatal Exception: java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.view.inputmethod.InputConnection.finishComposingText()' on a null object reference
   at android.view.inputmethod.InputConnectionWrapper.finishComposingText(InputConnectionWrapper.java:78)
   at android.view.inputmethod.InputMethodManager.checkFocusNoStartInput(InputMethodManager.java:1809)
   at android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1761)
   at android.view.inputmethod.InputMethodManager.isActive(InputMethodManager.java:883)
   at android.widget.Editor$CursorAnchorInfoNotifier.updatePosition(Editor.java:4095)
   at android.widget.Editor$PositionListener.onPreDraw(Editor.java:2564)
   at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:1018)
   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2313)
   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1301)
   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7021)
   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777)
   at android.view.Choreographer.doCallbacks(Choreographer.java:590)
   at android.view.Choreographer.doFrame(Choreographer.java:560)
   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:763)
   at android.os.Handler.handleCallback(Handler.java:739)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:145)
   at android.app.ActivityThread.main(ActivityThread.java:6918)
   at java.lang.reflect.Method.invoke(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:372)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

问题答案:

确保onCreateInputConnection重写方法中的输入连接不为null。

@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
    InputConnection inputConnection = super.onCreateInputConnection(outAttrs);
    if (inputConnection == null)
    {
        return null;
    }
    return new MyInputConnectionWrapper(inputConnection,
            true);
}

其中MyInputConnectionWrapper是自InputConnectionWrapper扩展的自定义输入连接包装器。



 类似资料:
  • 问题内容: 我有以下活动: 我得到一个NPE,当我尝试调用的,我猜这是因为是一个独立的片段,我有作为之内: 但是,我不确定如何解决此问题,以便可以找到loginButton ID。我以前没有使用过片段,所以我意识到我可能正在使用它们/错误地实现了它们。包含在几个按钮,并没有什么,但一个。 问题答案: 从片段编写代码以初始化按钮,因为您的按钮进入片段布局而不是活动布局。 而从删除登录按钮相关的代码的

  • 问题内容: 我刚刚开始学习Java,并且只知道少量的代码,但是,这仍然是一个简单的程序。它更多是一个恶作剧程序,但主要只是为了测试我是否可以创建一个jar文件。 这是代码: 我将其保存到名为的文件中,然后使用进行编译 这有效,当我使用运行它时 它也可以正常工作。 因此,然后我尝试创建一个jar文件。我使用命令 而且有效。之后,我双击jar文件,它出现一个错误。 所以我在cmd中运行它 并得到这个错

  • 问题内容: 我点击超级链接后有一个操作网址 在我的方法中,我有以下代码 我在表演的时候就在表演。即使正确打印为。 类: 为什么会这样呢? 问题答案: 该未初始化。您应该在操作中以某种方式对其进行初始化 更好的方法是让容器为您完成。您只需要在 那你就会有 而且您不需要解析参数请求,拦截器已经完成了此操作,这是您的操作应运行的一部分。您应该在操作中创建属性以保存参数值。 动作看起来像

  • 问题内容: 我是Java的新手。 我有以下问题:方法或者,等抛出异常:。 我使用NetBeans IDE(如果有关系)。 问题答案: 某些IDE不提供控制台。请注意,在这些情况下会返回。 来自文献 返回值: 系统控制台(如果有),否则为null。 您可以始终使用和代替,如下所示:

  • 问题内容: 下面的程序引发NullPointerException。在Log cat中,它显示: 单击该按钮时,它不会进入Mousefragment类。我试图解决它,但是我不能-如何解决这个问题? 编辑 单击该按钮多少次,该异常随同invalid_ip Toast消息一起显示 问题答案: 如前所述,您的问题询问如何解决此问题。 您需要弄清楚在哪里抛出。为此,请查看堆栈跟踪以查看引起问题的行。然后,

  • 问题内容: 我正在开发Java代理。我有一个NullPointerException错误,我认为应该不会发生。 这是调试控制台消息: 这是Java代理中的代码 基本上,错误指向。 事实是,URL是有效的链接,因为我已经通过在浏览器中进行访问尝试了它。 此错误的可能原因是什么?在我创建用于测试的本地Notes数据库上,它的效果不佳。但是,在注释中未开发的普通Java程序中,它可以工作。 问题答案: