问题:
当switch出现Resource IDs will be non-final in Android Gradle Plugin version 5.0, avoid using them in switch case statements警告处理
原因:
谷歌工程师在gradle更新到5.0以后,将资源id的默认final(常量)取消,改为变量,目的暂且不说,这里只处理这个警告。
解决方法:
目前代码方式有两种,还有一种更改工具提示(不建议),最后一种直接不用5.0(也不建议)
-
moudle的gradle下android节点中添加如下:
lintOptions {
disable ‘NonConstantResourceId’
} -
将switch替换为if.else形式
选中switch,然后alt+enter提示,会出现将switch替换为if.else形式
mac中的快捷键则为Option+Return -
更改工具提示也是一种办法,但是不建议(所有的官方提示都不建议取消)
setting中找到提示,将提示取消了,可以直接搜索
Checks use of resource IDs in places requiring constants. -
将gradle版本改为5.0下,这个最不建议,就不说了
总结
谷歌既然设置id不为常量了,并且不建议使用switch,那么以后id就用if操作。所以最建议使用第二种,将switch更
换为if,当然不换目前也不会出现出现任何bug,只是会出现烦人的警告。
建议
以前的老代码就不要一个个更改,但是以后代码最好跟着一起用if.else。毕竟谷歌建议的,希望这个变量id会
给我们开发提供更好的便利。