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

相关推荐
BU摆烂会噶3 小时前
【LangGraph】作为节点添加与状态共享
android·人工智能·python·ui·langchain·人机交互
刘大猫.4 小时前
重塑经典:Snapseed4.0全面登陆安卓,内置“胶片相机”与专业手动模式
android·数码相机·ai·机器人·大模型·算力·snapseed4.0
Languorous.4 小时前
MySQL聚合查询:COUNT、SUM、AVG用法,实战案例演示
android·数据库
沅霖4 小时前
Android Studio Java工程开发环境,怎么切换到Kotlin开发环境
android·kotlin·android studio
largecode5 小时前
企业名称能在来电显示吗?号码显示公司名服务打通多终端展示
android·xml·ios·iphone·xcode·webview·phonegap
龙之叶5 小时前
Android 12:从 Editor 到 FloatingToolbar 全局收敛长按菜单
android
Kapaseker5 小时前
Kotlin SharedFlow 的三个参数到底有啥用
android·kotlin
DogDaoDao5 小时前
Android MediaCodec 全面详解:从入门到精通
android·音视频·实时音视频·视频编解码·短视频·视频直播·mediacodec
重生之小比特5 小时前
【MySQL 数据库】用户管理与权限控制
android·数据库·mysql
御水流红叶5 小时前
Android-Unity游戏逆向思路
android·游戏·unity