web-dev-qa-db-ja.com

Android Studio 3.1 EditText StackOverflowError

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は正常に機能しました

56
Kamer358

@ evi が指摘しているように 高度なプロファイリングのバグ です。

今のところそれを無効にする(構成設定の編集->プロファイリング->高度なプロファイリングを有効にする)はEditTextがクラッシュするのを防ぎます

更新:

Android Studio 3.1.1 でリリースされた修正

高度なプロファイリングが再び利用可能になりました!

75
Kamer358

これはAndroid 6.0デバイスでのみ発生するようです。EditTextは、Android 5およびAndroid 7デバイスで機能します。実行構成のプロファイリング(API <26)が機能します。

7
aaronhigh

Android 5.1.1、同じ問題。新しいAndroid Studioのバグのようです。高度なプロファイリングを無効にすると、デバッグビルドの問題が修正されます。

6
Roman

Android Studio 3.1。を設定してみてくださいdebuggable false in build.gradleデバッグビルドタイプ。または、デフォルトではfalseであるため、ビルドタイプのリリースに切り替えます。それは私の場合に役立ちました。

更新:高度なプロファイリングを無効にすると、問題も修正されたことを確認できます。

2
Yuri V. Suhanov

私は同じ問題を抱えていましたが、その後:

  • .idea、.gradle、gradleフォルダーを削除して再作成します。
  • きれいなプロジェクト。
  • アプリを再構築します。

わたしにはできる。

0
Gabriele Grippa