material-components-android icon indicating copy to clipboard operation
material-components-android copied to clipboard

[ShapeableImageView] Crash occasionally

Open chenqingru opened this issue 2 years ago • 6 comments

Description: Hi, I found a crash on ShapeableImageView. The version used is 1.5.0. Error log : ResourcesCompat: Failed to inflate ColorStateList, leaving it to the framework ResourcesCompat: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 0: TypedValue{t=0x2/d=0x7f0400f3 a=-1} ResourcesCompat: at android.content.res.TypedArray.getColor(TypedArray.java:477) ResourcesCompat: at androidx.core.content.res.ColorStateListInflaterCompat.inflate(ColorStateListInflaterCompat.java:13) ResourcesCompat: at androidx.core.content.res.ColorStateListInflaterCompat.createFromXmlInner(ColorStateListInflaterCompat.java:13) ResourcesCompat: at androidx.core.content.res.ColorStateListInflaterCompat.createFromXml(ColorStateListInflaterCompat.java:18) ResourcesCompat: at androidx.core.content.res.ResourcesCompat.inflateColorStateList(ResourcesCompat.java:13) ResourcesCompat: at androidx.core.content.res.ResourcesCompat.getColorStateList(ResourcesCompat.java:13) ResourcesCompat: at androidx.core.content.ContextCompat.getColorStateList(ContextCompat.java:9) ResourcesCompat: at androidx.appcompat.content.res.AppCompatResources.getColorStateList(AppCompatResources.java:1) ResourcesCompat: at com.google.android.material.resources.MaterialResources.getColorStateList(MaterialResources.java:3) ResourcesCompat: at com.google.android.material.imageview.ShapeableImageView.(ShapeableImageView.java:18) ResourcesCompat: at com.google.android.material.imageview.ShapeableImageView.(ShapeableImageView.java:2) ResourcesCompat: at java.lang.reflect.Constructor.newInstance0(Native Method) ResourcesCompat: at java.lang.reflect.Constructor.newInstance(Constructor.java:343) ResourcesCompat: at android.view.LayoutInflater.createView(LayoutInflater.java:647) ResourcesCompat: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:807) ResourcesCompat: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) ResourcesCompat: at android.view.LayoutInflater.rInflate(LayoutInflater.java:880) ResourcesCompat: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:841) ResourcesCompat: at android.view.LayoutInflater.inflate(LayoutInflater.java:515) ResourcesCompat: at android.view.LayoutInflater.inflate(LayoutInflater.java:423)

Expected behavior: ShapeableImageView doesn't crash

Source code: the crash on source code is: TypedArray

if (type == TypedValue.TYPE_ATTRIBUTE) { final TypedValue value = mValue; getValueAt(index, value); throw new UnsupportedOperationException( "Failed to resolve attribute at index " + attrIndex + ": " + value + ", theme=" + mTheme); }

Minimal sample app repro: use it in layout.xml for example: <com.google.android.material.imageview.ShapeableImageView android:id="@+id/big_setting_account_avator" android:layout_width="@dimen/big_setting_user_avatar" android:layout_height="@dimen/big_setting_user_avatar" android:layout_alignParentEnd="true" android:layout_marginTop="@dimen/big_setting_user_avatar_margin_top" android:layout_marginEnd="@dimen/big_setting_account_avator_margin_end" android:visibility="invisible" app:shapeAppearance="@style/PortraitCircle" /> Android API version: 33

Material Library version: 1.5.0

Device: Device on which the bug was encountered here

To help us triage faster, please check to make sure you are using the latest version of the library.

We also happily accept pull requests.

chenqingru avatar Mar 09 '23 03:03 chenqingru

Hi @chenqingru , could you try on the latest version of the library (1.8.0)?

paulfthomas avatar Mar 09 '23 16:03 paulfthomas

ok,thanks for you reply

chenqingru avatar Mar 10 '23 02:03 chenqingru

Is the issue still happening with the latest library version?

drchen avatar Apr 10 '23 16:04 drchen

The same exception occurs with MaterialDivider on initialization. Library version 1.9.0

Pittvandewitt avatar Jun 21 '23 11:06 Pittvandewitt

This issue for ShapeableImageView is still there in the version: 1.12.0-beta01

AkshayAshokCode avatar Mar 26 '24 15:03 AkshayAshokCode

should set strokeColor

app:strokeColor="@null"

zjbpku avatar Aug 21 '24 09:08 zjbpku