当前位置:   article > 正文

android Switch/case with R.id.XXXX in android doesn‘t work 错误: 需要常量表达式解决方案

错误: 需要常量表达式

出现需要常量表达式 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
  • 1
  • 2

少了 final 关键字

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号