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 работал нормально

Не могли бы вы добавить код

Firas Shrourou 27.03.2018 14:38

это похоже на рекурсивную ошибку

Mohammad Tabbara 27.03.2018 14:43

Не могли бы вы опубликовать функцию edittext onChangeListener, если вы добавили

Praveen 27.03.2018 14:45

У меня та же проблема.

Matei Suica 27.03.2018 15:08

Вы обновляли версию библиотеки поддержки?

Matei Suica 27.03.2018 15:18

@MateiSuica нет, только плагин для Android Gradle

Kamer358 27.03.2018 15:20

Можете ли вы попробовать после удаления свойства app:layout_constraintTop_toTopOf?

Selim YILDIZ 27.03.2018 15:50

@SelimYILDIZ все еще не работает, даже с FrameLayout в качестве корневого контейнера

Kamer358 27.03.2018 15:59

У меня та же проблема, создание нового проекта с EditText работает нормально, но добавление EditText в любом месте моего существующего проекта вызывает эту проблему.

tagy22 27.03.2018 16:09

Открытие того же проекта в Android Studio 3.2 Canary 8 работает нормально, без проблем. Похоже на ошибку в 3.1

tagy22 27.03.2018 17:25

@ tagy22, это могло быть хорошим временным решением, но, как и в случае с 3.1, для меня работает только сборка релиза

Kamer358 27.03.2018 17:33

Попробуйте отключить расширенное профилирование (API <26). См. здесь

evi 27.03.2018 20:38
56
12
4 477
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Столкнулся с теми же проблемами EditText сразу после обновления до Android Studio 3.1. Попробуйте установить debuggable false в build.gradle для типа сборки отладки. Или просто переключитесь на тип сборки выпуска, так как по умолчанию он false. В моем случае это помогло.

Обновлять: Подтверждаю, что отключение расширенного профилирования также устранило мою проблему.

Сборка релиза, похоже, работает. Хотя не знаю, зачем и как отлаживать.

tagy22 27.03.2018 16:43

У меня была такая же проблема, но после:

  • Удаление папки .idea, .gradle, gradle и ее повторное создание.
  • Чистый проект.
  • Восстановить приложение.

меня устраивает.

Кажется, это происходит только на устройствах Android 6.0, EditText отлично работает на устройствах Android 5 и Android 7. Отключение расширенного профилирования (API <26) в конфигурации запуска у меня работает.

Это сработало и для меня, правильное решение, если вы используете устройства Android 6.0

Mohtashim 04.04.2018 06:55

Вы пытались обновить Android Studio до 3.1.1, это уже должно решить проблему.

aaronhigh 23.04.2018 04:02
Ответ принят как подходящий

Как указал @evi, существует ошибка в расширенном профилировании.

На данный момент отключение (Изменить параметры конфигурации -> Профилирование -> Включить расширенное профилирование) предотвращает сбой EditText

Обновлять:

Исправление выпущено в Android Studio 3.1.1

Расширенное профилирование снова доступно!

Хотя мои комментарии удаляются (привет, мод), это рабочее решение

egorikem 28.03.2018 13:01

Спасибо, эта ошибка сводит меня с ума, так как я установил версию 3.1 Android Studio.

Steve 29.03.2018 11:22

Может быть, это только я, но мне не удалось найти вариант. Может это помогает другим. Я нашел его в Run-> Edit Configurations ... (вкладка профилирования)

Alan Todtenkopf 29.03.2018 21:52

@AlanTodtenkopf нажмите на меню справки и выполните поиск по запросу «Изменить настройки конфигурации», надеюсь, это поможет.

Abhimaan 12.04.2018 08:59

Эта проблема, похоже, не решена полностью в версии 3.1.1. Соответствующий билет: Issuesetracker.google.com/issues/77764953

Marcin Jedynak 28.05.2018 16:15

Я использую 3.1.3, и эта проблема возникла только после того, как я начал ориентироваться на API 26. Я запускаю эмулятор API 23. Отключение расширенного профилирования исчезло.

Dave Hubbard 11.07.2018 18:01

Android 5.1.1, такая же проблема. Кажется, ошибка в новой Android Studio. Отключение расширенного профилирования устраняет проблему для отладочной сборки.

Другие вопросы по теме