应用程序崩溃点击EditText与最新更新(gradle 4.4 - android studio 3.1)

Swa*_*nil 2 android android-edittext android-anr-dialog android-studio android-gradle-plugin

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

Fatal Exception: java.lang.StackOverflowError: 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)
Run Code Online (Sandbox Code Playgroud)

以下是我如何使用的片段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>
Run Code Online (Sandbox Code Playgroud)

仅供参考:当我尝试点击我的文本项时,我也遇到了类似的问题PreferenceFragmentCompat.

Oğu*_*gül 5

更新:此错误还有另一个原因,即Android Profiler错误.在运行/调试配置中禁用Advanced Profiling"性能分析"选项卡可能会修复它.

这里有相关的其他答案:https://stackoverflow.com/a/49112444/3669559

在此输入图像描述


您将获得java.lang.StackOverflowError,这意味着您可能已经递归并连续地调用了一些方法.这会导致无限循环和此错误.

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