• 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

  • 相关阅读:
    Live2D 看板娘
    Live2D 看板娘
    python框架☞Flask
    Python框架☞Django
    Python ORM框架之SQLALchemy
    HTTP1.0 HTTP 1.1 HTTP 2.0主要区别
    【F12】修改 DevTools的主题
    【F12】网络面板
    【正在等待可用套接字】解决方法
    nginx反向代理压测问题记录
  • 原文地址:https://www.cnblogs.com/jeff-wgc/p/5600912.html
Copyright © 2020-2023  润新知