Android Studio 3.1 EditText StackOverflowError
Android Studio 3.1 EditText StackOverflowError
更新到 Android Studio 3.1 后,当 EditText 处于焦点时我遇到异常
E/AndroidRuntime: FATAL EXCEPTION: main
Process: <package>, PID: 18938
java.lang.WhosebugError: 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)
知道如何解决这个问题吗?
更新:
经过一些研究,我发现 WhosebugError 出现在带有简单 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.WhosebugError: stack size 8MB
at android.view.inputmethod.InputConnectionWrapper.beginBatchEdit(InputConnectionWrapper.java:106)
当我按回:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: <package>, PID: 21280
java.lang.WhosebugError: stack size 8MB
at android.view.inputmethod.InputConnectionWrapper.finishComposingText(InputConnectionWrapper.java:78)
即使在 WebView 中输入文本也会导致此错误
在 AS 3.0 中 EditText 工作正常
更新到 Android Studio 3.1 后立即面临同样的 EditText 问题。尝试在 build.gradle
中为调试构建类型设置 debuggable false
。或者只是切换到发布构建类型,因为默认情况下它是错误的。这对我有帮助。
更新:确认禁用高级分析也解决了我的问题。
我遇到了同样的问题,但是之后:
- 正在删除 .idea、.gradle、gradle 文件夹并重新创建它。
- 清理项目。
- 重建应用
对我有用。
这似乎只发生在 Android 6.0 设备上,EditText 在 Android 5 和 android 7 设备上工作正常。在 运行 配置中禁用高级分析(API < 26)对我有用。
如@evi pointed out there is a bug in advanced profiling.
现在禁用它(编辑配置设置 -> 分析 -> 启用高级分析) 防止 EditText 崩溃
更新:
中发布修复
高级分析再次可用!
Android 5.1.1,同样的问题。似乎是新 Android Studio 中的错误。禁用高级分析修复了调试版本的问题。
更新到 Android Studio 3.1 后,当 EditText 处于焦点时我遇到异常
E/AndroidRuntime: FATAL EXCEPTION: main
Process: <package>, PID: 18938
java.lang.WhosebugError: 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)
知道如何解决这个问题吗?
更新:
经过一些研究,我发现 WhosebugError 出现在带有简单 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.WhosebugError: stack size 8MB
at android.view.inputmethod.InputConnectionWrapper.beginBatchEdit(InputConnectionWrapper.java:106)
当我按回:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: <package>, PID: 21280
java.lang.WhosebugError: stack size 8MB
at android.view.inputmethod.InputConnectionWrapper.finishComposingText(InputConnectionWrapper.java:78)
即使在 WebView 中输入文本也会导致此错误
在 AS 3.0 中 EditText 工作正常
更新到 Android Studio 3.1 后立即面临同样的 EditText 问题。尝试在 build.gradle
中为调试构建类型设置 debuggable false
。或者只是切换到发布构建类型,因为默认情况下它是错误的。这对我有帮助。
更新:确认禁用高级分析也解决了我的问题。
我遇到了同样的问题,但是之后:
- 正在删除 .idea、.gradle、gradle 文件夹并重新创建它。
- 清理项目。
- 重建应用
对我有用。
这似乎只发生在 Android 6.0 设备上,EditText 在 Android 5 和 android 7 设备上工作正常。在 运行 配置中禁用高级分析(API < 26)对我有用。
如@evi pointed out there is a bug in advanced profiling.
现在禁用它(编辑配置设置 -> 分析 -> 启用高级分析) 防止 EditText 崩溃
更新:
中发布修复高级分析再次可用!
Android 5.1.1,同样的问题。似乎是新 Android Studio 中的错误。禁用高级分析修复了调试版本的问题。