前言:这个问题已经过时了,它是在首选的Android开发环境是带有Android插件的Eclipse时编写的。
我有一段时间的Java Android项目。今天,我将Android开发工具更新到了Google的最新版本。项目崩溃了--我得到了一堆"case表达式必须是常量表达式“的编译错误消息。
结果是现在生成R.java文件的方式不同了。以前,它会有一堆
public static final int MyID=0x12340000;
语句;现在,它看起来(在清理/重建之后)如下所示:
public static int MyID=0x12340000;
final
走了。因此,我拥有的所有资源ID上的开关(我有几个)都是错误的。请问发生了什么事?就我一个人吗?这里的理由是什么?它是否有文档记录?我能以某种方式把final
带回来吗?
发布于 2020-11-05 17:20:40
您可以切换到使用If/Else语句,警告将会消失。
示例:
@Override
public void onClick(final View v) {
//finds which button was pressed
final int buttonView = v.getId();
String current = fromEditText.getText().toString();
if (buttonView == R.id.bA) {
current += getString(R.string.a);
}
发布于 2020-11-10 14:12:32
你应该使用view binding!
android {
...
viewBinding {
enabled = true
}
}
发布于 2020-10-16 01:47:27
只需将这段代码添加到模块级build.gradle
文件中:
android {
...
lintOptions {
disable 'NonConstantResourceId'
}
}
https://stackoverflow.com/questions/7840914
复制相似问题