Android Studio 3.1に更新した後、EditTextにフォーカスがあるときに例外に直面しています
E/AndroidRuntime: FATAL EXCEPTION: main
Process: <package>, PID: 18938
Java.lang.StackOverflowError: stack size 8MB
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
at Android.view.inputmethod.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.Java:46)
これを修正する方法はありますか?
更新:
いくつかの調査の後、私はStackOverflowErrorが単純なEditTextの異なるスタックトレースで表示されることを発見しました。
<EditText
Android:id="@+id/editText"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"/>
記号を入力しようとすると、次のようになります:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: <package>, PID: 21122
Java.lang.StackOverflowError: stack size 8MB
at Android.view.inputmethod.InputConnectionWrapper.beginBatchEdit(InputConnectionWrapper.Java:106)
押し戻すとき:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: <package>, PID: 21280
Java.lang.StackOverflowError: stack size 8MB
at Android.view.inputmethod.InputConnectionWrapper.finishComposingText(InputConnectionWrapper.Java:78)
WebViewにテキストを入力してもこのエラーが発生します
AS 3.0では、EditTextは正常に機能しました
@ evi が指摘しているように 高度なプロファイリングのバグ です。
今のところそれを無効にする(構成設定の編集->プロファイリング->高度なプロファイリングを有効にする)はEditTextがクラッシュするのを防ぎます
更新:
Android Studio 3.1.1 でリリースされた修正
高度なプロファイリングが再び利用可能になりました!
これはAndroid 6.0デバイスでのみ発生するようです。EditTextは、Android 5およびAndroid 7デバイスで機能します。実行構成のプロファイリング(API <26)が機能します。
Android 5.1.1、同じ問題。新しいAndroid Studioのバグのようです。高度なプロファイリングを無効にすると、デバッグビルドの問題が修正されます。
Android Studio 3.1。を設定してみてくださいdebuggable false
in build.gradle
デバッグビルドタイプ。または、デフォルトではfalseであるため、ビルドタイプのリリースに切り替えます。それは私の場合に役立ちました。
更新:高度なプロファイリングを無効にすると、問題も修正されたことを確認できます。
私は同じ問題を抱えていましたが、その後:
わたしにはできる。