Android Studio 3.1 EditText 循环调用导致:*Error: stack size 8MB

时间:2022-06-01 20:50:21

升级到Android Studio 3.1后,原来项目中一个简单的EditText都会报*Error错误。

代码如:

<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

当点击EditText,获焦时getTextBeforeCursor方法循环调用,最后导致了堆溢出异常,异常如下:

java.lang.*Error: 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)

在*上有人说这是Android Studio 3.1 advanced profiling的bug:https://issuetracker.google.com/issues/76404689

解决方法:

禁用advanced profiling:

 Edit Configurations -> Profiling -> 去掉Enable advanced profiling的勾选

如图:
Android Studio 3.1 EditText 循环调用导致:*Error: stack size 8MB