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

  • 相关阅读:
    SQL Server中的事务与锁
    delphi中 dataset容易出错的地方
    Ehlib(Delphi控件) v9.2.024 D7-XE10.2 免费绿色特别版
    Delphi (Library Path Browsing Path)
    XML序列化和反序列化
    C#基础--Attribute(标签) 和 reflect(反射) 应用
    C#特性类的使用
    NOPI使用手册
    【WCF】错误处理(四):一刀切——IErrorHandler
    浅析C#中的事件
  • 原文地址:https://www.cnblogs.com/jeff-wgc/p/5600912.html
Copyright © 2011-2022 走看看