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

相关推荐
seabirdssss7 分钟前
Flutter 开发环境配置
android·windows·flutter·adb
Evavava啊1 小时前
Android WebView 中 React useState 更新失效问题
android·前端·react.js·渲染
longji1 小时前
android 01 AOSP android16 aaos 编译及webview升级
android·aaos·aosp·android16
鹏程十八少2 小时前
2.2026金三银四 Android Handler 完全指南:28道高频面试题 + 源码解析 + 图解 (一文通关)
android·前端·面试
studyForMokey2 小时前
【Android面试】架构模式专题
android·面试·架构
SoulRed3 小时前
Android Studio 调试flutter gradle的问题
android·flutter·android studio
xiayiye53 小时前
Android开发之实现无重建无重启activity完成当前页面的主题切换
android·android换肤·app换肤·activity换肤不重建·activity换肤不销毁
JJay.3 小时前
Android BLE 断开重连为什么越来越不稳定
android
tkokof13 小时前
捉虫(Bug)小记
人工智能·深度学习·bug·游戏开发
南宫萧幕3 小时前
基于上一篇文章VMware+openweb UI+ollama+docker的bug问题总结
docker·容器·bug·openweb ui