更新到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正常工作
答案 0 :(得分:75)
正如@evi指出的那样a bug in advanced profiling。
现在禁用它(编辑配置设置 - &gt;性能分析 - &gt;启用高级性能分析)可防止EditText崩溃
<强>更新强>
中发布的修正再次提供高级分析!
答案 1 :(得分:7)
这似乎只发生在Android 6.0设备上,EditText在Android 5和Android 7设备上运行良好。在运行配置中禁用高级分析(API&lt; 26)对我来说很有用。
答案 2 :(得分:6)
Android 5.1.1,同样的问题。似乎是新Android Studio中的错误。禁用高级分析可以解决调试构建的问题。
答案 3 :(得分:2)
在更新到Android Studio 3.1后,面对相同的EditText问题。尝试在debuggable false
中为调试版本类型设置build.gradle
。或者只是切换到发布构建类型,因为默认情况下它是假的。这对我的情况有帮助。
更新:确认禁用高级分析也解决了我的问题。
答案 4 :(得分:0)
我遇到了同样的问题,但之后:
它对我有用。