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

  • 相关阅读:
    Golang里边的map变量是什么?
    Golang map的底层实现
    方法和函数的区别
    Golang 对 对象和指针 的理解
    React 部分
    前端开发概述、html、css基础
    服务器核心知识
    常用模块8.7
    2017.8.2迭代器和生成器
    2017.7.18可变/不可变类型,符号运算及其流程控制
  • 原文地址:https://www.cnblogs.com/jeff-wgc/p/5600912.html
Copyright © 2011-2022 走看看