Index: ui/android/java/src/org/chromium/ui/widget/ButtonCompat.java |
diff --git a/ui/android/java/src/org/chromium/ui/widget/ButtonCompat.java b/ui/android/java/src/org/chromium/ui/widget/ButtonCompat.java |
index df5b52d1f3f83b58554035c391e4253c01bb8afa..27ed3e34a192eab006a87447c8b1c844b3bbbb30 100644 |
--- a/ui/android/java/src/org/chromium/ui/widget/ButtonCompat.java |
+++ b/ui/android/java/src/org/chromium/ui/widget/ButtonCompat.java |
@@ -81,9 +81,15 @@ public class ButtonCompat extends Button { |
TypedArray a = getContext().obtainStyledAttributes(null, |
new int[]{android.R.attr.stateListAnimator}, 0, |
android.R.style.Widget_Material_Button); |
- setStateListAnimator(AnimatorInflater.loadStateListAnimator(getContext(), |
- a.getResourceId(0, 0))); |
+ int stateListAnimatorId = a.getResourceId(0, 0); |
a.recycle(); |
+ // stateListAnimatorId could be 0 on custom or future builds of Android, or when using a |
+ // framework like Xposed. Handle these cases gracefully by simply not using a |
+ // StateListAnimator. |
+ if (stateListAnimatorId != 0) { |
+ setStateListAnimator(AnimatorInflater.loadStateListAnimator(getContext(), |
+ stateListAnimatorId)); |
+ } |
} |
} |