我一直在开发应用程序,最近又买了一台新电脑。我必须将现有代码导入此计算机。现在,当我这样做时,我在构建路径中遇到一些错误,所以我修复了它们。但是现在,我在我的交换机和机箱中都遇到了错误。它说:case表达式必须是常量表达式。
我的代码示例:
case R.id.b3:
a.putExtra("Green", "green");
startActivity(a);
break;
case R.id.b4:
a.putExtra("Pink", "pink");
startActivity(a);
break;
我在按钮的ID上出现错误。在我使用的其他计算机上一切正常,所以我不确定为什么我现在得到这个错误。我确实谷歌它,我读了我应该用if else声明替换它们,但这将是一个很大的痛苦,以取代我的所有开关和案件,所以我想避免这一点。
为什么会在导入的代码中发生这种情况?
答案 0 :(得分:12)
当您在资源库项目中定义资源时会发生这种情况。我相信Android插件的一个较新版本需要基于对库项目编译方式的更改。 if-else是必要的。 IDE将自动为您执行此操作。如果您突出显示switch关键字并按ctrl-1,您应该可以选择自动进行更改。
您可以阅读here。
答案 1 :(得分:0)
检查您正在使用的活动,即提供错误的活动, 并在其中查找这行代码
import android.R;
删除它! 干净利落 一切都应该有效
答案 2 :(得分:0)
答案 3 :(得分:0)
这可能是您正在使用third_party库,为了使您快速开发应用程序并能够使用多个库,资源ID未定义为final,因此您必须使用if / else而不是开关/箱。