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

相关推荐
Android-Flutter1 小时前
Compose 管理状态 详解
android·compose
缓慢更新2 小时前
审批的加签与会签:多人意见怎么合
android·java·数据库·低代码·rxjava
我怀里的猫3 小时前
android-activity-launch-sequence
android
YB13755 小时前
Jetpack Compose 动画rememberInfiniteTransition
android
baidu_247438618 小时前
Android 自定义竖直的虚线
android
传奇开心果编程9 小时前
【Jetpack Compose娓娓道来】 第25课:ViewModel就是UI界面的大脑
android·kotlin·移动开发·jetpack compose·编程语言理论·编程框架·声明式ui
马立杰9 小时前
PHP 未授权 RCE 应急响应:CVE-2026-109618 CVE-2026-109619 排查与加固实战
android·开发语言·php
NamoAmitabha1289 小时前
安装“编译器环境”(Android Studio)--deepseek--Cocos --Creator3.8.8
android·ide·android studio
聚美智数10 小时前
文档转换 API‑文档转 PDF‑PDF 转文档‑异步文档处理‑文件格式迁移‑转换结果回调推送 API 接口介绍
android·java·pdf
booboosui11 小时前
Android 上的无人回合:只放开 2 类工具,宁可空手
android