Android 此组件上的样式要求您的应用程序主题为theme.MaterialComponents(或子代)以显示Badgedrawable错误

Android 此组件上的样式要求您的应用程序主题为theme.MaterialComponents(或子代)以显示Badgedrawable错误,android,material-components-android,badge,Android,Material Components Android,Badge,打开应用程序时发生此错误 我向底部导航项添加了一个新功能Badgdrawable 这是我的.xml文件,它包含导航 <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/navigation" android:layout_width="match_parent" android:layout_height=&qu

打开应用程序时发生此错误

我向底部导航项添加了一个新功能Badgdrawable

这是我的.xml文件,它包含导航

<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="43dp"
    android:layout_gravity="bottom"
    android:soundEffectsEnabled="true"
    android:theme="@style/Platform.MaterialComponents"
    app:itemRippleColor="@color/colorAccent"
    app:itemHorizontalTranslationEnabled="true"
    android:background="?android:attr/windowBackground"
    app:menu="@menu/menu_nav">

</com.google.android.material.bottomnavigation.BottomNavigationView>
这是Logcat

Process: com.example.dotchat, PID: 19593
    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:248)
        at com.google.android.material.internal.ThemeEnforcement.checkMaterialTheme(ThemeEnforcement.java:222)
        at com.google.android.material.badge.BadgeDrawable.<init>(BadgeDrawable.java:360)
        at com.google.android.material.badge.BadgeDrawable.createFromAttributes(BadgeDrawable.java:293)
        at com.google.android.material.badge.BadgeDrawable.create(BadgeDrawable.java:261)
        at com.google.android.material.bottomnavigation.BottomNavigationMenuView.getOrCreateBadge(BottomNavigationMenuView.java:641)
        at com.google.android.material.bottomnavigation.BottomNavigationView.getOrCreateBadge(BottomNavigationView.java:673)
        at com.example.dotchat.DashboardActivity$1.onDataChange(DashboardActivity.java:78)
        at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)
        at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63)
        at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:200)

文件
src/main/res/values/styles.xml的内容应如下所示:


@android:彩色/透明
@android:彩色/透明
@颜色/原色
@颜色/原色变体
您的样式
AppTheme
的父项是什么


编辑:根据@Gabriele Mariotti的评论编辑此错误,因为在styles.xml文件中,您必须更改基本应用程序主题以使用theme.MaterialComponents

可能是您正在使用的

Theme.AppCompat.Light.DarkActionBar 

所以做这个改变吧

<style name="AppTheme" parent="Theme.MaterialComponents">
        
</style>


能否添加文件的内容
src/main/res/values/styles.xml
?您的应用程序主题是否继承自theme.MaterialComponents?使用theme.MaterialComponents作为应用程序主题,并将库更新为最新的稳定版本1.2.1这是否回答了您的问题?
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    <item name="android:navigationBarColor"> @android:color/transparent</item>
    <item name="android:statusBarColor"> @android:color/transparent</item>
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryVariant">@color/colorPrimaryVariant </item>
</style>
Theme.AppCompat.Light.DarkActionBar 
ThemeOverlay.AppCompat
<style name="AppTheme" parent="Theme.MaterialComponents">
        
</style>