Android-由switch-case和view.getId()引起的bug:错误:需要常量表达式 的解决办法

无意中,使用按钮测试点击事件,在此过程中使用了switch case语句,在条件switch中使用了view.getId(),出现错误。我记得很早之前写Android程序没啥问题,于是研究了一番。
度娘一番才知道,是因为R文件的缘故。

在Android Gradle Plugin version 8.0中,资源id默认为非final,避免在switch case语句中使用它们。

解决办法有以下:

方法一:

将 switch case 语句换为 if else 语句。

在配置文件中加入 android.nonFinalResIds=false,忽略该错误,但是损失编译效率性能。

同时switch case会提示warning警告。

可以加上@SuppressLint("NonConstantResourceId") 注解消除 warning警告。

相关推荐
程序员 沐阳5 分钟前
Git 二分法精准定位 Bug:从原理到实战,让调试效率起飞
git·elasticsearch·bug
.豆鲨包15 分钟前
【Android】OkHttp的使用及封装
android·java·okhttp
黄林晴17 分钟前
重启不用输 PIN!Android 17 终于把 SIM 卡安全做明白了
android
2501_9159214334 分钟前
uni-app一键生成iOS安装包并上传TestFlight全流程
android·ios·小程序·https·uni-app·iphone·webview
studyForMokey43 分钟前
【Android面试】四大组件专题 todo
android·面试·职场和发展
qq_353737541 小时前
网站 Favicon 获取 API 技术实现指南
android
stevenzqzq1 小时前
Android Navigation 组件页面跳转方法说明
android·compose
Kapaseker1 小时前
Compose 响应式布局要变天—入门 FlexBox
android·kotlin
.豆鲨包1 小时前
【Android】HttpURLConnection解析
android·java
亘元有量-流量变现2 小时前
鸿蒙、安卓、苹果音频设备技术深度解析与开发实践
android·wpf·harmonyos·亘元有量·积分墙