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

相关推荐
雨白8 分钟前
C 语言字符串:从字符数组、指针到核心操作实战
android
Java小白笔记1 小时前
MySQL中存储过程大表分批删除历史数据
android·mysql·adb
aidou13141 小时前
Kotlin中沉浸式状态栏显示布局
android·kotlin·windowmanager·沉浸式状态栏·insetslistener·insetscompat·systembars
namexingyun2 小时前
Scaling Law bug实战启示:从“虚胖“到“精瘦“的算力效率革命
开发语言·网络·人工智能·bug·ai编程
阿pin2 小时前
Android随笔-pipe是什么?
android·linux·pipe
帅次2 小时前
Android 高级工程师面试:Flow 与状态流 近1年高频追问 22 题
android·面试·职场和发展
雨季余静2 小时前
RustDesk Android APK 从零编译全步骤
android
辰合软件2 小时前
通达OA配置文件详解
android·adb
辰合软件3 小时前
通达OA目录结构与核心文件解析
android·数据库·oracle
通玄3 小时前
Jetpack Compose 入门系列(八):Compose 中的副作用处理
android