我在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崩溃报告日志中确定,崩溃仅在用户尝试在键盘之间来回切换时发生。
任何人都可以了解正在发生的事情吗?我该如何解决呢?还是应该在哪里进行尝试捕获? (如果那是最后的选择)