Skip to content

[MaterialComponentsViewInflater] Unable to inflate buttons in alert dialog #4983

@vhmvd

Description

@vhmvd

Description: My app is fully on compose. I do not use any reference to views except for GAM. The only external lib that may use webview is Google Ads SDK. I have started getting a fair share of crashes on firebase. I am not sure if this is a theme issue or an issue of chromium because the stacktrace contains some native chromimum code (JNI). Any help or direction will be appreciated.

Expected behaviour: Won't crash.

Source code:

Theme:

<resources>

    <style name="Theme.mytheme" parent="Theme.Material3.DayNight.NoActionBar">
        <item name="windowSplashScreenBackground">@color/container</item>
        <item name="android:windowBackground">@color/container</item>
    </style>

    <style name="Theme.App.Starting" parent="Theme.SplashScreen">
        <item name="windowSplashScreenAnimatedIcon">@drawable/avd_anim</item>
        <item name="windowSplashScreenBackground">@color/splash_bg</item>
        <item name="windowSplashScreenAnimationDuration">1000</item>
        <item name="postSplashScreenTheme">@style/Theme.mytheme</item>
    </style>

</resources>

Stacktrace:

  Fatal Exception: org.chromium.base.JniAndroid$UncaughtExceptionException: Native stack trace:
#00 pc 0x00000000064daca3 /data/app/~~fkTOFKK1CeoZswQrdUkjRA==/com.google.android.trichromelibrary_744410233-tZEIF0XobVi5MZ-AY8vE2w==/base.apk (offset 0x8dc000)
#01 pc 0x00000000056a5aa3 /data/app/~~fkTOFKK1CeoZswQrdUkjRA==/com.google.android.trichromelibrary_744410233-tZEIF0XobVi5MZ-AY8vE2w==/base.apk (offset 0x8dc000)
#02 pc 0x00000000032b4bb3 /data/app/~~fkTOFKK1CeoZswQrdUkjRA==/com.google.android.trichromelibrary_744410233-tZEIF0XobVi5MZ-AY8vE2w==/base.apk (offset 0x8dc000)
#03 pc 0x00000000032e1cff /data/app/~~fkTOFKK1CeoZswQrdUkjRA==/com.google.android.trichromelibrary_744410233-tZEIF0XobVi5MZ-AY8vE2w==/base.apk (offset 0x8dc000)
#04 pc 0x000000000312246b /data/app/~~fkTOFKK1CeoZswQrdUkjRA==/com.google.android.trichromelibrary_744410233-tZEIF0XobVi5MZ-AY8vE2w==/base.apk (offset 0x8dc000)
#05 pc 0x00000000067c05c7 /data/app/~~fkTOFKK1CeoZswQrdUkjRA==/com.google.android.trichromelibrary_744410233-tZEIF0XobVi5MZ-AY8vE2w==/base.apk (offset 0x8dc000)
#06 pc 0x00000000057ff65b /data/app/~~fkTOFKK1CeoZswQrdUkjRA==/com.google.android.trichromelibrary_744410233-tZEIF0XobVi5MZ-AY8vE2w==/base.apk (offset 0x8dc000)
#07 pc 0x00000000057fe937 /data/app/~~fkTOFKK1CeoZswQrdUkjRA==/com.google.android.trichromelibrary_744410233-tZEIF0XobVi5MZ-AY8vE2w==/base.apk (offset 0x8dc000)
#08 pc 0x000000000562196f /data/app/~~fkTOFKK1CeoZswQrdUkjRA==/com.google.android.trichromelibrary_744410233-tZEIF0XobVi5MZ-AY8vE2w==/base.apk (offset 0x8dc000)
#09 pc 0x000000000727cf53 /data/app/~~fkTOFKK1CeoZswQrdUkjRA==/com.google.android.trichromelibrary_744410233-tZEIF0XobVi5MZ-AY8vE2w==/base.apk (offset 0x8dc000)
#10 pc 0x00000000071cc8a3 /data/app/~~fkTOFKK1CeoZswQrdUkjRA==/com.google.android.trichromelibrary_744410233-tZEIF0XobVi5MZ-AY8vE2w==/base.apk (offset 0x8dc000)
#11 pc 0x000000000679ddb7 /data/app/~~fkTOFKK1CeoZswQrdUkjRA==/com.google.android.trichromelibrary_744410233-tZEIF0XobVi5MZ-AY8vE2w==/base.apk (offset 0x8dc000)
#12 pc 0x000000000679dd2f /data/app/~~fkTOFKK1CeoZswQrdUkjRA==/com.google.android.trichromelibra<truncated: 340 chars>
       at org.chromium.base.JniAndroid.handleException(chromium-TrichromeWebViewGoogle6432.aab-stable-744410233:21)
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
       at android.os.MessageQueue.next(MessageQueue.java:370)
       at android.os.Looper.loopOnce(Looper.java:214)
       at android.os.Looper.loop(Looper.java:387)
       at android.app.ActivityThread.main(ActivityThread.java:9500)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:600)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1005)

          Caused by android.view.InflateException: Binary XML file line #80 in android:layout/alert_dialog_material: Binary XML file line #37 in android:layout/alert_dialog_button_bar_material: Error inflating class Button

          Caused by android.view.InflateException: Binary XML file line #37 in android:layout/alert_dialog_button_bar_material: Error inflating class Button

          Caused by java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).
       at com.google.android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.java:249)
       at com.google.android.material.internal.ThemeEnforcement.checkMaterialTheme(ThemeEnforcement.java:218)
       at com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:146)
       at com.google.android.material.internal.ThemeEnforcement.obtainStyledAttributes(ThemeEnforcement.java:78)
       at com.google.android.material.button.MaterialButton.<init>(MaterialButton.java:283)
       at com.google.android.material.button.MaterialButton.<init>(MaterialButton.java:271)
       at com.google.android.material.theme.MaterialComponentsViewInflater.createButton(MaterialComponentsViewInflater.java:43)
       at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:156)
       at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1654)
       at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1705)
       at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:973)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:909)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:873)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:1035)
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:996)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:1038)
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:996)
       at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1170)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:1031)
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:996)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:592)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:424)
       at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:557)
       at com.android.internal.app.AlertController.installContent(AlertController.java:302)
       at android.app.AlertDialog.onCreate(AlertDialog.java:444)
       at android.app.Dialog.dispatchOnCreate(Dialog.java:461)
       at android.app.Dialog.show(Dialog.java:339)
       at WV.na2.a(chromium-TrichromeWebViewGoogle6432.aab-stable-744410233:3)
       at org.chromium.content.browser.input.SelectPopup.show(chromium-TrichromeWebViewGoogle6432.aab-stable-744410233:508)
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
       at android.os.MessageQueue.next(MessageQueue.java:370)
       at android.os.Looper.loopOnce(Looper.java:214)
       at android.os.Looper.loop(Looper.java:387)
       at android.app.ActivityThread.main(ActivityThread.java:9500)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:600)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1005)

Minimal sample app repro: I have not been able to repro but this happens on certain webview interactions. User's log also do not show any interaction with a WebView so the assumption is that this happens in GAM.

Android API version: Multiple. However API 35 is predominant.

Material Library version: 1.13.0

Device: Multiple as reported on firebase.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions