当前位置: 首页 > 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.xdnf.cn/news/1292401.html

相关文章:

  • PCBA:电子产品制造的核心环节
  • MCP协议更新:从HTTP+SSE到Streamable HTTP,大模型通信的进化之路
  • 记某一次仿真渗透测试
  • 开发Excel Add-in的心得笔记
  • [系统架构]系统架构基础知识(一)
  • 基于elk实现分布式日志
  • 2025 开源语音合成模型全景解析:从工业级性能到创新架构的技术图谱
  • 我们计划编写一个闲鱼监控脚本,主要功能是监控特定关键词的商品,并在发现新商品时通过钉钉机器人推送通知。
  • LCP 17. 速算机器人
  • 从开发工程师视角看TTS语音合成芯片
  • 基于数据驱动来写提示词(一)
  • 机器学习项目从零到一:加州房价预测模型(PART 3)
  • 【论文笔记】DOC: Improving Long Story Coherence With Detailed Outline Control
  • Excel多级数据结构导入导出工具
  • 2025 环法战车科技对决!维乐 Angel Glide定义舒适新标
  • [AI React Web] E2B沙箱 | WebGPU | 组件树 | 智能重构 | 架构异味检测
  • 面试实战 问题二十九 Java 值传递与引用传递的区别详解
  • 汽车免拆诊断案例 | 2017 款丰田皇冠车行驶中加速时车身偶尔抖动
  • 【国内电子数据取证厂商龙信科技】RAID存储技术
  • 浅谈TLS 混合密钥交换:后量子迁移过渡方案
  • 汽车高位制动灯难达 CIE 标准?OAS 光学软件高效优化破局
  • 【分布式 ID】一文详解美团 Leaf
  • 服务器通过生成公钥和私钥安全登录
  • Spring cloud集成ElastictJob分布式定时任务完整攻略(含snakeyaml报错处理方法)
  • 华为悦盒EC6108V9-1+4G版-盒子有【蓝色USB接口】的特殊刷机说明
  • 机器翻译:学习率调度详解
  • 2025 电赛 C 题完整通关攻略:从单目标定到 2 cm 测距精度的全流程实战
  • 图论理论部分
  • 云计算-OpenStack 实战运维:从组件配置到故障排查(含 RAID、模板、存储管理,网络、存储、镜像、容器等)
  • Python3解释器深度解析与实战教程:从源码到性能优化的全路径探索