单击具有最新更新的 EditText 时应用程序崩溃 (gradle 4.4 - android studio 3.1)

App crashing on clicking on EditText with latest updates (gradle 4.4 - android studio 3.1)

我最近将我的 android 工作室更新到 3.1 版,并将我的 gradle 更新到 4.4 版。从那以后,当我点击应该弹出软输入键盘的 EditText 时,我一直面临这个应用程序进入 ANR 的问题。单击 EditText 时,我看到有多个 GC 被触发,最终应用程序崩溃并出现 ANR 消息,指出堆栈溢出超过 8 MB。这是我看到的崩溃:http://crashes.to/s/77a48e5d43c。也粘贴在这里:

Fatal Exception: java.lang.WhosebugError: stack size 8MB
   at android.view.inputmethod.InputConnectionWrapper.reportFullscreenMode(InputConnectionWrapper.java:122)
   at android.view.inputmethod.InputConnectionWrapper.reportFullscreenMode(InputConnectionWrapper.java:122)
   at android.view.inputmethod.InputConnectionWrapper.reportFullscreenMode(InputConnectionWrapper.java:122)
   at android.view.inputmethod.InputConnectionWrapper.reportFullscreenMode(InputConnectionWrapper.java:122)
   at android.view.inputmethod.InputConnectionWrapper.reportFullscreenMode(InputConnectionWrapper.java:122)
   at android.view.inputmethod.InputConnectionWrapper.reportFullscreenMode(InputConnectionWrapper.java:122)
   at android.view.inputmethod.InputConnectionWrapper.reportFullscreenMode(InputConnectionWrapper.java:122)
   at android.view.inputmethod.InputConnectionWrapper.reportFullscreenMode(InputConnectionWrapper.java:122)
   at android.view.inputmethod.InputConnectionWrapper.reportFullscreenMode(InputConnectionWrapper.java:122)
   at android.view.inputmethod.InputConnectionWrapper.reportFullscreenMode(InputConnectionWrapper.java:122)
   at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:416)
   at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:78)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:135)
   at android.app.ActivityThread.main(ActivityThread.java:5268)
   at java.lang.reflect.Method.invoke(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:372)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)

这是我如何使用 EditText:

的片段
<android.support.design.widget.TextInputLayout
    android:id="@+id/textInputLayout2"
    android:layout_width="@dimen/login_screen_elem_width"
    android:layout_height="wrap_content"
    android:layout_marginTop="24dp"
    app:layout_constraintStart_toStartOf="@+id/fbLogin"
    app:layout_constraintTop_toBottomOf="@+id/fbLogin">

    <android.support.design.widget.TextInputEditText
        android:id="@+id/etFirstName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/first_name"
        android:imeOptions="flagNoExtractUi|actionNext"
        android:inputType="textPersonName"
        android:maxLines="1"
        android:textColor="@color/secondaryTextColour"
        android:textSize="16dp" />

</android.support.design.widget.TextInputLayout>

仅供参考:当我尝试单击 PreferenceFragmentCompat.

中的文本项时,我也遇到了类似的问题

UPDATE: There is one other reason to this error, Android Profilers bug. Disabling Advanced Profiling on Profiling Tab, in Run/Debug configurations may fix it.

此处相关其他答案:


你得到 java.lang.WhosebugError 这意味着你很可能递归地和连续地调用了一些方法。这会导致无限循环和此错误。

如果你有 TextWatcher 或任何像 OnFocusChangeListener 这样的监听器 EditText,你需要检查它。

在 Android Studio 3.1 的新版本中,高级分析存在一个错误。

所以,您只需禁用它(在菜单栏 运行 -> 编辑配置 -> 分析 -> 启用高级分析)防止 EditText 崩溃。

最新版本Android Studio 修复了这个问题,3.1.1。遇到问题并在片刻之前自己测试了修复程序。希望对您有所帮助!