QMUI_Android icon indicating copy to clipboard operation
QMUI_Android copied to clipboard

引用QMUI.Compat后,使用getOrCreateBadge报错

Open dust27149 opened this issue 4 years ago • 0 comments

运行环境

  • [x] 设备型号:小米10
  • [x] 设备系统版本: Android 10.0
  • [x] Gradle 版本: 7.0.1
  • [x] QMUI Android 版本:2.0.1

具体问题描述

QMUI.Compat实际继承了Theme.AppCompat.DayNight,使用NavigationBarView的getOrCreateBadge方法时会报错。将 <style name="AppRootTheme" parent="Theme.AppCompat.DayNight"/>改为<style name="AppRootTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar" />即可解决该问题。建议增加或修改主题,增加对MaterialComponents的支持。

问题截图

image

异常日志(堆栈)

Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 3: TypedValue{t=0x2/d=0x7f0400f0 a=12}
        at android.content.res.TypedArray.getColorStateList(TypedArray.java:599)
        at com.google.android.material.resources.MaterialResources.getColorStateList(MaterialResources.java:76)
        at com.google.android.material.resources.TextAppearance.<init>(TextAppearance.java:85)
        at com.google.android.material.badge.BadgeDrawable$SavedState.<init>(BadgeDrawable.java:228)
        at com.google.android.material.badge.BadgeDrawable.<init>(BadgeDrawable.java:438)
        at com.google.android.material.badge.BadgeDrawable.createFromAttributes(BadgeDrawable.java:342)
        at com.google.android.material.badge.BadgeDrawable.create(BadgeDrawable.java:310)
        at com.google.android.material.navigation.NavigationBarMenuView.getOrCreateBadge(NavigationBarMenuView.java:551)
        at com.google.android.material.navigation.NavigationBarView.getOrCreateBadge(NavigationBarView.java:669)
        at com.enbo.forest.activity.MainActivity.initView(MainActivity.java:102)
        at com.enbo.forest.activity.MainActivity.onCreate(MainActivity.java:40)
        at android.app.Activity.performCreate(Activity.java:8093)
        at android.app.Activity.performCreate(Activity.java:8067)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1310)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3456)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3655) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2108) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:236) 
        at android.app.ActivityThread.main(ActivityThread.java:7879) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967) 

dust27149 avatar Aug 28 '21 03:08 dust27149