更新Support Library 23.2.0后,当达到counterMaxLength限制时,Android EditText和TextInputLayout崩溃

更新Support Library 23.2.0后,当达到counterMaxLength限制时,Android EditText和TextInputLayout崩溃,android,android-support-library,Android,Android Support Library,在我们的应用程序中,我们使用EditText和TextInputLayout来显示验证错误。一切正常,直到我们更新到最新的支持库com.android.support:design:23.2.0。 此更新后,应用程序尝试在上显示错误时开始崩溃。 布局: 错误: FATAL EXCEPTION: main Process: im.grouvi.app.debug, PID: 10704 java.lang.UnsupportedOperationException: Failed to r

在我们的应用程序中,我们使用
EditText
TextInputLayout
来显示验证错误。一切正常,直到我们更新到最新的支持库
com.android.support:design:23.2.0
。 此更新后,应用程序尝试在上显示错误时开始崩溃。 布局:

错误:

    FATAL EXCEPTION: main
Process: im.grouvi.app.debug, PID: 10704
java.lang.UnsupportedOperationException: Failed to resolve attribute at index 3: TypedValue{t=0x2/d=0x7f01010b a=2}
    at android.content.res.TypedArray.getColorStateList(TypedArray.java:482)
    at android.widget.TextView.setTextAppearance(TextView.java:2757)
    at android.support.design.widget.TextInputLayout.updateCounter(TextInputLayout.java:681)
    at android.support.design.widget.TextInputLayout.access$300(TextInputLayout.java:82)
    at android.support.design.widget.TextInputLayout$1.afterTextChanged(TextInputLayout.java:242)
    at android.widget.TextView.sendAfterTextChanged(TextView.java:8004)
    at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:10165)
    at android.text.SpannableStringBuilder.sendAfterTextChanged(SpannableStringBuilder.java:1043)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:560)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:492)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:491)
    at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:685)
    at android.view.inputmethod.BaseInputConnection.setComposingText(BaseInputConnection.java:445)
    at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:340)
    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:148)
    at android.app.ActivityThread.main(ActivityThread.java:5417)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
编辑
经过更多的测试。只有当它达到
counterMaxLength

版本23.2.0中设置的输入字符最大值时才会崩溃,该版本引入了
Theme.design.*
主题系列,该系列主题镜像了AppCompat主题的子集,但在其上定义了此属性:

<item name="textColorError">@color/design_textinput_error_color_light</item>

对于浅色和深色主题。

这是一个已经记录在这里的错误。直到23.2.1设计支持库才解决。


同时,您可以使用@Eugen提到的解决方案。

只需删除应用于TextInputLayout的样式即可。
这是由于明暗主题的不同。这对我来说很有用。

使用稳定的材质库

android Studio gradle中的实现'com.google.android.material:material:1.0.0'

显示最新库号提示。所以它正确的23.2.0I也有同样的问题,这就解决了它。我在主题中使用了实现textColorError的解决方案。
    FATAL EXCEPTION: main
Process: im.grouvi.app.debug, PID: 10704
java.lang.UnsupportedOperationException: Failed to resolve attribute at index 3: TypedValue{t=0x2/d=0x7f01010b a=2}
    at android.content.res.TypedArray.getColorStateList(TypedArray.java:482)
    at android.widget.TextView.setTextAppearance(TextView.java:2757)
    at android.support.design.widget.TextInputLayout.updateCounter(TextInputLayout.java:681)
    at android.support.design.widget.TextInputLayout.access$300(TextInputLayout.java:82)
    at android.support.design.widget.TextInputLayout$1.afterTextChanged(TextInputLayout.java:242)
    at android.widget.TextView.sendAfterTextChanged(TextView.java:8004)
    at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:10165)
    at android.text.SpannableStringBuilder.sendAfterTextChanged(SpannableStringBuilder.java:1043)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:560)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:492)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:491)
    at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:685)
    at android.view.inputmethod.BaseInputConnection.setComposingText(BaseInputConnection.java:445)
    at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:340)
    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:148)
    at android.app.ActivityThread.main(ActivityThread.java:5417)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
<item name="textColorError">@color/design_textinput_error_color_light</item>
<item name="textColorError">?attr/colorError</item>