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

相关推荐
码云数智-园园1 天前
PHP 8.x 命名的参数与属性(Attribute):告别注释,构建真正的元数据
android·ide·android studio
0pen11 天前
ZygiskNext 源码解析(三):zygiskd 的模块管理、memfd 与 companion
android·安全·开源
Android_xiong_st1 天前
(原创)2026安卓面试复盘
android·面试·职场和发展
码点1 天前
Android 9休眠时任意键唤醒屏幕
android·linux·运维
andr_gale1 天前
05_aosp12中init进程解析rc文件流程分析
android·aosp·framwork
CyL_Cly1 天前
Appteka下载 最新版18.4下载安装
android
张风捷特烈1 天前
状态管理大乱斗#05 | Riverpod 源码评析 (中) - 上层建筑
android·前端·flutter
三少爷的鞋1 天前
AsyncTask 已死多年:协程到底赢在哪里?
android
Gary Studio1 天前
安卓HAL编写
android
_李小白1 天前
【android opencv学习笔记】Day 2: Mat类(图片数据结构体)
android·opencv·学习