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警告。

相关推荐
COSMOS_*7 小时前
2025最新版 Android Studio安装及组件配置(SDK、JDK、Gradle)
android·ide·jdk·gitee·android studio
jian110587 小时前
android studio Profiler性能优化,查看内存泄漏
android·性能优化·android studio
建群新人小猿9 小时前
陀螺匠企业助手——组织框架图
android·java·大数据·开发语言·容器
TheNextByte110 小时前
如何将文件从Android无线传输到 iPad
android·ios·ipad
赫萝的红苹果10 小时前
实验探究并验证MySQL innoDB中的各种锁机制及作用范围
android·数据库·mysql
叶落无痕5211 小时前
Android Studio 2024.3.1 连接夜神模拟器
android·ide·android studio
玲子的猫11 小时前
安卓原生开发实现图片双指放大预览功能
android
2501_9151063212 小时前
如何在iPad上高效管理本地文件的完整指南
android·ios·小程序·uni-app·iphone·webview·ipad
似霰12 小时前
AIDL Hal 开发笔记5----实现AIDL HAL
android·framework·hal
2501_9151063213 小时前
iOS 成品包加固,在只有 IPA 的情况下,能做那些操作
android·ios·小程序·https·uni-app·iphone·webview