После обновления до 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 работал нормально
это похоже на рекурсивную ошибку
Не могли бы вы опубликовать функцию edittext onChangeListener, если вы добавили
У меня та же проблема.
Вы обновляли версию библиотеки поддержки?
@MateiSuica нет, только плагин для Android Gradle
Можете ли вы попробовать после удаления свойства app:layout_constraintTop_toTopOf?
@SelimYILDIZ все еще не работает, даже с FrameLayout в качестве корневого контейнера
У меня та же проблема, создание нового проекта с EditText работает нормально, но добавление EditText в любом месте моего существующего проекта вызывает эту проблему.
Открытие того же проекта в Android Studio 3.2 Canary 8 работает нормально, без проблем. Похоже на ошибку в 3.1
@ tagy22, это могло быть хорошим временным решением, но, как и в случае с 3.1, для меня работает только сборка релиза
Попробуйте отключить расширенное профилирование (API <26). См. здесь
Столкнулся с теми же проблемами EditText сразу после обновления до Android Studio 3.1. Попробуйте установить debuggable false в build.gradle для типа сборки отладки. Или просто переключитесь на тип сборки выпуска, так как по умолчанию он false. В моем случае это помогло.
Обновлять: Подтверждаю, что отключение расширенного профилирования также устранило мою проблему.
Сборка релиза, похоже, работает. Хотя не знаю, зачем и как отлаживать.
У меня была такая же проблема, но после:
меня устраивает.
Кажется, это происходит только на устройствах Android 6.0, EditText отлично работает на устройствах Android 5 и Android 7. Отключение расширенного профилирования (API <26) в конфигурации запуска у меня работает.
Это сработало и для меня, правильное решение, если вы используете устройства Android 6.0
Вы пытались обновить Android Studio до 3.1.1, это уже должно решить проблему.
Как указал @evi, существует ошибка в расширенном профилировании.
На данный момент отключение (Изменить параметры конфигурации -> Профилирование -> Включить расширенное профилирование) предотвращает сбой EditText
Обновлять:
Исправление выпущено в Android Studio 3.1.1
Расширенное профилирование снова доступно!
Хотя мои комментарии удаляются (привет, мод), это рабочее решение
Спасибо, эта ошибка сводит меня с ума, так как я установил версию 3.1 Android Studio.
Может быть, это только я, но мне не удалось найти вариант. Может это помогает другим. Я нашел его в Run-> Edit Configurations ... (вкладка профилирования)
@AlanTodtenkopf нажмите на меню справки и выполните поиск по запросу «Изменить настройки конфигурации», надеюсь, это поможет.
Эта проблема, похоже, не решена полностью в версии 3.1.1. Соответствующий билет: Issuesetracker.google.com/issues/77764953
Я использую 3.1.3, и эта проблема возникла только после того, как я начал ориентироваться на API 26. Я запускаю эмулятор API 23. Отключение расширенного профилирования исчезло.
Android 5.1.1, такая же проблема. Кажется, ошибка в новой Android Studio. Отключение расширенного профилирования устраняет проблему для отладочной сборки.
Не могли бы вы добавить код