新版AndroidStudio使用switch-case语句时出现Constant expression required错误

原因:

在新版的Android Studio中使用JDK17以上版本,会出现switch语句报错"Constant expression required"的问题,这是因为在JDK17中switch语句的条件表达式支持使用枚举类型,而这个特性还没有被支持。

解决方法:

①在gradle.properties配置文件下添加代码(推荐,最简便)

复制代码
android.nonFinalResIds=false

②替换为if-else语法

③降低jdk版本(不推荐,新版AS强制要求jdk版本)

④使用枚举替换(写法比较麻烦,仅供参考)

创建一个枚举类

在Activity中声明成员变量

然后,将枚举类型与按钮关联起来。你可以使用Map来将按钮的资源ID与枚举类型进行映射。在Activity的onCreate方法中,或者Fragment的onCreateView方法中,进行如下操作:

最后,在你的Activity或Fragment中实现onButtonClick方法,根据枚举类型来执行相应的逻辑:

相关推荐
问心无愧051319 小时前
[GXYCTF2019]Ping Ping Ping
android·笔记
事圆则缓19 小时前
Kotlin 异步与并发:从一次搜索请求走到状态流
android·开发语言·kotlin
帅得不敢出门20 小时前
Android Framework定制卸载确认窗口
android
Android-Flutter21 小时前
Compose 什么叫重组?怎么样触发重组?
android·compose
硫酸锌011 天前
安卓手机连接Windows电脑后通过DHCP服务为手机分配IP地址
android·windows·计算机网络
骑着蜗牛撵大象3271 天前
设备监控数据存与查:Spring Boot 接入 TimescaleDB 超表的完整落地
android·spring boot·后端·springboot·时序数据库·es·设备监控
云贝贝贝1 天前
MySQL 线上报 Lock wait timeout 别慌:6 招定位锁等待与死锁
android
mmsx1 天前
Android 签名校验为什么能拦住二次打包:指纹与完整性校验
android·签名
jason.zeng@15022071 天前
使用vscode+flutter开发android程序(入门)
android·vscode·flutter
事圆则缓1 天前
Kotlin学习导航:从知识树走到项目与面试
android·开发语言·kotlin