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

相关推荐
嵌入式学习菌10 分钟前
Modbus‑RTU 数据类型分析
开发语言·单片机·bug
聚美智数43 分钟前
图片广告检测-图片审核-图片广告识别-图像广告检测
android
早睡早起身体好1233 小时前
用 XGrammar 约束大模型工具调用:解决参数为空的问题
android·人工智能·神经网络·机器学习·自然语言处理·vllm
大佐不会说日语~5 小时前
Android 16 下 uni-app APP 提示“网络连接失败”的排障与修复
android·uni-app
2501_915106326 小时前
苹果App Store上架费用及流程全面解析
android·ios·小程序·https·uni-app·iphone·webview
缘友一世7 小时前
dsh(0.1.5-rc.1)接入官方模型deepseek-flash图像输入不支持修复
bug·图片输入·deepseek-flash·dsh 0.1.5-rc.1
lovingsoft7 小时前
AI测试中的对抗测试:从“找Bug”到“预演战争”
人工智能·bug
YF02118 小时前
Android 16系统App开机自启动方案
android
hm宋9 小时前
安卓手机卡顿优化 —— 背景与使用指南
android
OxYGC9 小时前
[Android] [WatchOS]智能手表第一篇: 实用工具与应用推荐
android·智能手表