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

相关推荐
4***99743 小时前
Kotlin序列处理
android·开发语言·kotlin
t***D2643 小时前
Kotlin在服务端开发中的生态建设
android·开发语言·kotlin
玲珑Felone3 小时前
flutter 状态管理--InheritedWidget、Provider原理解析
android·flutter·ios
BoomHe3 小时前
车载应用配置系统签名
android·android studio
路人甲ing..5 小时前
用 Android Studio 自带的模拟 Android Emulator 调试
android·java·ide·ubuntu·kotlin·android studio
路人甲ing..5 小时前
Android Studio 模拟器报错 The emulator process for AVD xxxxx has terminated.
android·java·ide·kotlin·android studio
弥巷6 小时前
【Android】 View事件分发机制源码分析
android·java
wanna7 小时前
安卓自学小笔记第一弹
android·笔记
Kapaseker7 小时前
五分钟实战 Compose 展开/收起动画
android·kotlin