Crashlyticsでこのエラーログを取得しています。このクラッシュの原因はわかりません。 Android 4.x、5.x、6.xデバイスで発生します。(Samsung、Sony、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から拡張されたカスタム入力接続ラッパーです。
ここで述べたように 、これはAndroid Advanced Profiling
ツールが原因で発生する可能性があります。
Run/Debug Configurations
ダイアログから無効にしてください:
高度なプロファイリングオプションが有効になっているため、私にも起こりました。
高度なプロファイリングを無効にするには、次の手順に従います。
上記の答えは正しいはずですが、私のシナリオでは、このエラーの理由は次のとおりです。Edittextにフォーカスがあり、edittext.getText()
を使用すると、このエラーが発生します。このエラーを回避するには、次のことを行う必要があります。edittext.gettext().toString();
注:このエラーを発生させるには、この編集テキストにフォーカスが必要です。
フラグメントまたはアクティビティにmTvという名前の非EditTextViewがあると想定します。適切な時期に、mTv.requestFocuse()
;これは私にとってはうまくいきます。これがお役に立てば幸いです。