IllegalStateException:DecorView已被添加到窗口管理器中

时间:2018-07-07 13:29:02

标签: android keyboard android-softkeyboard custom-keyboard android-windowmanager

我在android中有一个键盘应用程序,它扩展了InputMethodService类并在其上构建视图。这是onCreateInputView的意思。

@Override
public View onCreateInputView() {
    mContext = this;
    if (layout == null) {
        layout = getSearchViewLayout();
    }
    return layout;
}

问题是有时(非常几次,并且不在我的设备中)会生成以下崩溃日志。在崩溃日志中,没有引用我的代码中的任何文件/行,而仅在下面提供此日志。

Exception java.lang.IllegalStateException: View DecorView@1d4ba90[InputMethod] has already been added to the window manager.
android.view.WindowManagerGlobal.addView (WindowManagerGlobal.java:319)
android.view.WindowManagerImpl.addView (WindowManagerImpl.java:94)
android.app.Dialog.show (Dialog.java:319)
android.inputmethodservice.InputMethodService.showWindowInner (InputMethodService.java:1658)
android.inputmethodservice.InputMethodService.showWindow (InputMethodService.java:1590)
android.inputmethodservice.InputMethodService$InputMethodImpl.showSoftInput (InputMethodService.java:442)
android.inputmethodservice.IInputMethodWrapper.executeMessage (IInputMethodWrapper.java:206)
com.android.internal.os.HandlerCaller$MyHandler.handleMessage (HandlerCaller.java:37)
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:165)
android.app.ActivityThread.main (ActivityThread.java:6365)
java.lang.reflect.Method.invoke (Method.java)

我试图在代码中的多个地方捕获错误,但是没有运气!

我还从Firebase崩溃报告日志中确定,崩溃仅在用户尝试在键盘之间来回切换时发生。

任何人都可以了解正在发生的事情吗?我该如何解决呢?还是应该在哪里进行尝试捕获? (如果那是最后的选择)

0 个答案:

没有答案