Android 开关大小写表达式必须是常量表达式

Android 开关大小写表达式必须是常量表达式,android,actionbarsherlock,Android,Actionbarsherlock,我正在使用ActionBarSherlock,然后在单击特定菜单项时使用选项项Selected来启动新活动。代码在添加ABS之前工作正常,现在我得到case表达式必须是常量表达式error oncase @Override public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) { switch (item.getItemId()) { case

我正在使用ActionBarSherlock,然后在单击特定菜单项时使用选项项Selected来启动新活动。代码在添加ABS之前工作正常,现在我得到
case表达式必须是常量表达式
error on
case

@Override
    public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) 
    {
        switch (item.getItemId()) {
        case R.id.about: //error
            startActivity(new Intent(this, AboutActivity.class));
            break;
        case R.id.feedback: //error
            //launch activity
            break;

        default:
            break;
        return super.onOptionsItemSelected(item);
    }

在添加ActionBarSherlock之前,相同的代码运行良好。

我已经用
if/else
替换了
switch/case
语句。如果您在Eclipse中,只需单击
开关
,然后按
CTRL+1

作为Sam建议的答案发布:


如果您在库中,则必须将所有switch/case语句从ADT版本14更改为If/else块

见:


切换案例缺少关闭“}”。

要从
切换
/
案例
语句切换到
如果
/
,只需在android studio中使用alt+enter即可。

如果您在库中,则必须将ADT版本14中的所有切换/案例语句更改为if/else块。请参阅:谢谢,它与if/else一起工作。@dmaxi您应该将此作为答案发布,并为此获得积分。这是一个很好的答案。。。!哇!!我不知道这个快捷方式,如果你知道我可以查看的其他快捷方式或站点,请告诉我。谢谢