2016-04-08 20 views
5

crashlyticsでこのエラーログが表示されています。私はこのクラッシュを引き起こすものがわからない。 Android 4.x、5.x、6.xデバイスで発生します。 (Samsung、Sony、LGEなど)InputConnection.finishComposingText()NullPointerException

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) 

答えて

7

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から拡張されたカスタム入力接続ラッパーです。