Skip to content

layout/design_layout_snackbar_include: Error inflating class android.widget.Button #11

@LeoJHarris

Description

@LeoJHarris

We are seeing on a small set of devices from Firebase CRASHLYTICS the following crash.

Crash Details

Fatal Exception: android.view.InflateException
Binary XML file line #41 in sampleapp:layout/design_layout_snackbar_include: Binary XML file line #41 in sampleapp:layout/design_layout_snackbar_include: Error inflating class android.widget.Button

Caused by java.lang.reflect.InvocationTargetException:
       at java.lang.reflect.Constructor.newInstance0(Constructor.java)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
       at android.view.LayoutInflater.createView(LayoutInflater.java:882)
       at android.view.LayoutInflater.createView(LayoutInflater.java:804)
       at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
       at android.view.LayoutInflater.onCreateView(LayoutInflater.java:958)
       at android.view.LayoutInflater.onCreateView(LayoutInflater.java:978)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1032)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:989)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:1151)
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1112)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:700)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:544)
       at com.google.android.material.snackbar.Snackbar.makeInternal(Snackbar.java:216)
       at com.google.android.material.snackbar.Snackbar.make(Snackbar.java:164)
       at crc64e888ea48337da3cf.ResumeSuccessListener.n_onSuccess(ResumeSuccessListener.java)
       at crc64e888ea48337da3cf.ResumeSuccessListener.onSuccess(ResumeSuccessListener.java:37)
       at com.google.android.gms.tasks.zzm.run(com.google.android.gms:play-services-tasks@@18.1.0:1)
       at android.os.Handler.handleCallback(Handler.java:958)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loopOnce(Looper.java:230)
       at android.os.Looper.loop(Looper.java:319)
       at android.app.ActivityThread.main(ActivityThread.java:9063)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)     

Caused by java.lang.UnsupportedOperationException: Failed to resolve attribute at index 5: TypedValue{t=0x2/d=0x7f04010e a=-1}, theme={InheritanceMap=[id=0x7f1302sampleapp:style/ThemeOverlay.AppCompat.Dark, id=0x7f13007sampleapp:style/Base.ThemeOverlay.AppCompat.Dark, id=0x7f13016sampleapp:style/Platform.ThemeOverlay.AppCompat.Dark, id=0x7f130169sampleapp:style/Platform.ThemeOverlay.AppCompat], Themes=[sampleapp:style/ThemeOverlay.AppCompat.Dark, forced, sampleapp:style/Theme.PlayCore.Transparent, forced, android:style/Theme.DeviceDefault.Light.DarkActionBar, forced]}
       at android.content.res.TypedArray.getColorStateList(TypedArray.java:600)
       at android.widget.TextView.readTextAppearance(TextView.java:4559)
       at android.widget.TextView.<init>(TextView.java:1480)
       at android.widget.Button.<init>(Button.java:174)
       at android.widget.Button.<init>(Button.java:149)
       at android.widget.Button.<init>(Button.java:125)
       at java.lang.reflect.Constructor.newInstance0(Constructor.java)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
       at android.view.LayoutInflater.createView(LayoutInflater.java:882)
       at android.view.LayoutInflater.createView(LayoutInflater.java:804)
       at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
       at android.view.LayoutInflater.onCreateView(LayoutInflater.java:958)
       at android.view.LayoutInflater.onCreateView(LayoutInflater.java:978)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1032)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:989)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:1151)
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1112)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:700)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:544)
       at com.google.android.material.snackbar.Snackbar.makeInternal(Snackbar.java:216)
       at com.google.android.material.snackbar.Snackbar.make(Snackbar.java:164)
       at crc64e888ea48337da3cf.ResumeSuccessListener.n_onSuccess(ResumeSuccessListener.java)
       at crc64e888ea48337da3cf.ResumeSuccessListener.onSuccess(ResumeSuccessListener.java:37)
       at com.google.android.gms.tasks.zzm.run(com.google.android.gms:play-services-tasks@@18.1.0:1)
       at android.os.Handler.handleCallback(Handler.java:958)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loopOnce(Looper.java:230)
       at android.os.Looper.loop(Looper.java:319)
       at android.app.ActivityThread.main(ActivityThread.java:9063)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

My observation seems to directly link the crash to this library. The stack trace seems to show the error occurring within the ResumeSuccessListener of this library and it does indeed use the Snackbar.

https://github.com/oscoreio/Maui.Android.InAppUpdates/blob/58cbf7fe6bcb38bb8d99c37340bd0c5d5cb135cc/src/libs/Maui.Android.InAppUpdates/Platforms/Android/DefaultUserInterface.cs#L22C4-L46C6

My styles.xml correctly inherits from Theme.MaterialComponents

<?xml version="1.0" encoding="utf-8" ?>
<resources>
	<style name="Maui.MainTheme" parent="Theme.MaterialComponents.DayNight">
		<item name="android:autofilledHighlight">@android:color/transparent</item>
	</style>
</resources>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions