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

相关推荐
90后的晨仔7 小时前
Android Studio 项目模板完全指南
android
summerkissyou19877 小时前
Android-SurfaceView-投屏-常见问题
android·surfaceview
明天就是Friday7 小时前
Android实战项目④ OkHttp WebSocket开发即时通讯App 完整源码详解
android·websocket·okhttp
吉哥机顶盒刷机8 小时前
好物分享:DNA-Android-4.0.5安卓固件解包、打包工具
android·好物分享
三棱球8 小时前
App逆向学习笔记(三)——Android开发入门课
android·笔记
安卓机器9 小时前
rom定制系列------魅族16x 解锁bl root与Flyme9安卓10线刷固件 传感器修复
android·魅族16x玩机
wellc11 小时前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
CYY9512 小时前
Android 打印 SO 库的异常日志
android
找藉口是失败者的习惯13 小时前
深入理解 Android 无障碍服务
android