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

相关推荐
A***27952 分钟前
Kotlin反射机制
android·开发语言·kotlin
2501_916007474 分钟前
iOS 应用性能测试的工程化流程,构建从指标采集到问题归因的多工具协同测试体系
android·ios·小程序·https·uni-app·iphone·webview
源码_V_saaskw5 分钟前
JAVA国际版同城跑腿源码快递代取帮买帮送同城服务源码支持Android+IOS+H5
android·java·ios·微信小程序
q***d17328 分钟前
Kotlin在后台服务中的框架
android·开发语言·kotlin
我要添砖java1 小时前
<JAVAEE> 多线程4-wait和notify方法
android·java·java-ee
wow_DG1 小时前
【Python✨】VS Code 秒开 Python 类型检查:一招 mypy + settings.json 让你的 Bug 原地现形!
python·json·bug
Mr_万能胶1 小时前
到底原研药,来瞧瞧 Google 官方《Android API 设计指南》
android·架构·android studio
BINGCHN2 小时前
NSSCTF每日一练 SWPUCTF2021 include--web
android·前端·android studio
fundroid2 小时前
Androidify:谷歌官方 AI + Android 开源示例应用
android·人工智能·开源
4z333 小时前
Android15 Framework(2):应用进程的孵化器 Zygote 进程解析
android·源码阅读