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

相关推荐
通往曙光的路上13 分钟前
mysql2
android·adb
木易 士心1 小时前
会见SDK文档
android
Co_Hui1 小时前
Android:多线程
android
赏金术士1 小时前
Kotlin 协程面试题大全(Android 高频版)
android·开发语言·kotlin
y小花2 小时前
DRM-Direct Rendering Manager
android·drm
特立独行的猫a2 小时前
鸿蒙 PC 命令行工具迁移实战 · 直播PPT
android·华为·harmonyos·vcpkg·三方库移植·鸿蒙pc
Co_Hui2 小时前
Android:通知 基本使用
android
古怪今人3 小时前
Android Studio的安装及配置 创建项目编译、运行、调试、打包安装包
android·ide·android studio
QuestLab3 小时前
维护 Hermes Agent CN 过程中的碎碎念,以及从bug上得到的一点点启发
bug
程序员陆业聪4 小时前
DNS优化实战:从运营商DNS到HttpDNS的进化之路
android