带有Android 10的Samsung Galaxy S10e:显示键盘时应用程序崩溃

时间:2020-02-06 10:20:23

标签: android android-edittext android-10.0 samsung-galaxy

我有几台装有Android 9的设备,有些现在有Android 10。

在装有Android 10的Samsung Galaxy S10e上,当我编辑EditText并移至下一个控件时,该应用程序将崩溃,键盘仍处于打开状态。输入文本还是将其保留为空都没关系。

在较早的版本(从4到9)上,该应用程序可以正常运行,并且还可以在其他Android 10设备(诺基亚7 plus)上运行。

我的应用崩溃时的StackTrace:

java.lang.StringIndexOutOfBoundsException: length=16; index=17
        at java.lang.String.substring(String.java:2060)
        at java.lang.String.subSequence(String.java:2107)
        at android.widget.TextView.onProvideStructure(TextView.java:12692)
        at android.view.View.onProvideAutofillStructure(View.java:9211)
        at android.view.View.dispatchProvideStructure(View.java:10092)
        at android.view.View.dispatchProvideAutofillStructure(View.java:10085)
        at android.view.ViewGroup.dispatchProvideAutofillStructure(ViewGroup.java:3814)
        at android.view.ViewGroup.dispatchProvideAutofillStructure(ViewGroup.java:3814)
        at android.app.assist.AssistStructure$WindowNode.<init>(AssistStructure.java:527)
        at android.app.assist.AssistStructure.<init>(AssistStructure.java:2154)
        at android.app.ActivityThread.handleRequestAssistContextExtras(ActivityThread.java:3705)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2094)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:237)
        at android.app.ActivityThread.main(ActivityThread.java:7762)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1047)

这是EditText的布局(永远不会调用TextChangedListener):

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="@dimen/margin_control_large">

    <EditText
        android:id="@+id/editTextStreet"
        style="?editTextStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:addTextChangedListener="@{viewModel.onStreetChanged}"
        android:cursorVisible="true"
        android:enabled="@{viewModel.newCustomer}"
        android:hint="@string/hint_ebecase_street"
        android:inputType="text"
        android:maxLines="1"
        android:singleLine="true"
        android:text="@{viewModel.street}"
        android:textAppearance="?android:attr/textAppearanceSmallInverse" />

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

0 个答案:

没有答案
相关问题