zoukankan      html  css  js  c++  java
  • android switch语句报错:case expressions must be constant expressions

    今天无意中碰见了   case expressions must be constant expressions 的问题

     

    写了一个

     1         switch(item.getItemId())
     2         {
     3             case R.id.action_settings:
     4                 Toast.makeText(this ,"action_settings" ,Toast.LENGTH_LONG).show();
     5                 System.out.println("onOptionsItemSelected");
     6                 break;
     7 
     8             case R.id.shezhi:
     9                 Toast.makeText(this ,"shezhi" ,Toast.LENGTH_LONG).show();
    10                 System.out.println("onOptionsItemSelected");
    11                 break;
    12                 
    13             case R.id.设置:
    14                 Toast.makeText(this ,"设置" ,Toast.LENGTH_LONG).show();
    15                 System.out.println("onOptionsItemSelected");
    16                 break;
    17 
    18             default:
    19                 break;
    20         }

    导入到其它的工程里面  case R.id.action_settings:  出现了错误

    错误提示为:case expressions must be constant expressions

    网上查了一下  发现是 我的工程  勾选了isLibrary  的原因。

    解决如下:project--->properties--->android--->library--->勾掉is library--->apply--->ok

     

    原因分析:adnroid项目之间引用 刚被引用项目设置成is library后R文件中的变量fianl全部丢失具体什么原因不清楚,项目设置成is library后switch() 判断控件提示:

    case expressions must be constant expressions

    得知 case 必须要常量,不能是变量。把项目中的switch改为if else正常,如果不解决这个问题主项目转子项目的时候控件返回是NULL

  • 相关阅读:
    辅助构造器
    pycharm、webstorm和idea激活码
    Executor
    生产者和消费者模型
    Master和worker模式
    Future模式
    记事本中快速查看数字对应的ASCII
    C#中时间戳和日期相互转换
    Dos命令调用FlashFXP上传文件
    curl 上传文件
  • 原文地址:https://www.cnblogs.com/jeff-wgc/p/5600912.html
Copyright © 2011-2022 走看看