出现需要常量表达式 R.id.xxx 表达式错误的处理方法
出现的原因是因为:
使用 Android Gradle 插件 8.0.0 时,默认情况下,您的所有 R 类资源都不再声明为 final/constant(因此在 switch 语句中不起作用)。 如果您在 Android Studio 中使用 AGP 升级向导,它实际上会将此行添加到您的 gradle.properties 中,以保留旧行为:
解决方法
1.将switch 切换为 if else 表达式
2.在 gradle.properties 添加 android.nonFinalResIds=false
再看看 加没加 android.nonFinalResIds=false 的id的值有啥不一样
public static abstract final int navigation_notifications = 2131231004
public static abstract int navigation_notifications = 1000006
少了 final 关键字