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

相关推荐
专注VB编程开发20年13 小时前
Windows API 所有老式结构体4字节对齐,但是64位VBA,Twinbasic弄成了8字节对齐,大BUG
windows·bug
李艺为15 小时前
Fake Device Test作假屏幕分辨率分析
android·java
zh_xuan15 小时前
github远程library仓库升级
android·github
峥嵘life15 小时前
Android蓝牙停用绝对音量原理
android
czlczl2002092517 小时前
IN和BETWEEN在索引效能的区别
android·adb
Volunteer Technology17 小时前
ES高级搜索功能
android·大数据·elasticsearch
北京自在科技17 小时前
Find Hub App 小更新
android·ios·安卓·findmy·airtag
lbb 小魔仙17 小时前
2026远程办公软件夏季深度横测:ToDesk、向日葵、网易UU远程全面对比,远控白皮书
android·服务器·网络协议·tcp/ip·postgresql
coding_fei18 小时前
AudioServer初始化过程
android
brucelee18618 小时前
Docker 运行 Android 模拟器
android·docker·容器