Samsung Galaxy S10e w / Android 10: приложение вылетает при отображении клавиатуры - PullRequest
1 голос
/ 06 февраля 2020

У меня есть несколько устройств с Android 9, а некоторые сейчас с Android 10.

На Samsung Galaxy S10e с Android 10 приложение вылетает после редактирования EditText и перехода к следующий элемент управления с открытой клавиатурой . Не имеет значения, вводить ли я текст или оставить его пустым.

В более старых версиях (от 4 до 9) приложение работает просто отлично, а также на другом устройстве Android 10 (Nokia 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>
...