当前位置: 首页 > news >正文

升级Gradle版本后,安卓点击事件使用了SwitchCase的情况下,报错无法使用的解决方案

安卓点击事件使用了SwitchCase后再升级

一般老项目里,大量使用了switchcase判断view的id进行点击逻辑的执行,在升级 Gradle / Android Studio 后,如果你使用了 Java 8+ 或者 Kotlin,或者 AGP 升级导致 编译器对 switch 支持变严格,就可能出现报错:

  • “Cannot switch on a value of type View”

  • 或者 “Incompatible types”

在 Android Gradle Plugin (AGP) 3.3 及以后版本,为了 支持动态特性模块(Dynamic Feature Module)和资源引用优化,默认生成的 R 类不再是 final:

public final class R {}   // 以前 final
public class R {}         // 新版默认非 final

此情况下,switchcase语句则会提示不可用,需要重新适配
临时处理方案:
在gradle.properties加入配置

android.nonFinalResIds=false

来声明生成的R继续保持final
缺点是某些新特性(比如动态模块、Instant App 优化)可能不能用。
好处是不用修改代码,就能继续用 switch-case 判断点击事件。

http://www.dtcms.com/a/330118.html

相关文章:

  • Query通过自注意力机制更新(如Transformer解码器的自回归生成)的理解
  • Unity3D 中纯 Shader 的双色纹理的平铺计算与实现
  • 二次筛法Quadratic Sieve因子分解法----C语言实现
  • [git diff] 对比检查变更 | 提交前复审 | 版本回退
  • SQL 核心操作全解析:从基础查询到关联关系实战
  • Spring Boot项目通过Feign调用三方接口的详细教程
  • 在es中安装kibana
  • 雨量系列篇一:翻斗雨量传感器与压电雨量传感器的区别是什么
  • java法定退休年龄计算器
  • Thinkphp(GUI)漏洞利用工具,支持各版本TP漏洞检测,命令执行,Getshell
  • reactive和ref使用方法及场景
  • GitHub 热榜项目 - 日榜(2025-08-13)
  • 光伏电站运维巡检指南
  • 02 流程流转
  • H616基于官方外设开发----1
  • 每日五个pyecharts可视化图表-line:从入门到精通 (5)
  • C++ 四种类型转换
  • el-table合并相同名称的列
  • 朝花夕拾(三)---------中文分词利器jieba库的详解与实战应用(python)
  • 洛谷 小 Y 拼木棒 贪心
  • 函数对象(仿函数)适配器
  • 《量子雷达》第2章 从量子信息到量子雷达 预习2025.8.13
  • 工业视觉检测中的常见的四种打光方式
  • Java 导出word 实现表格内插入图表(柱状图、折线图、饼状图)--可编辑数据
  • java反射与泛型的简单知识和应用
  • 【KO】Android 网络相关面试题
  • 326. 3 的幂
  • 不用费心备份操作的实验记录本
  • VUE基础笔记
  • 【AI学习100天】Day07 加入AI社区,通往AGI之路