android switch語句報錯:case expressions must be constant expressions

今天無心中遇見了   case expressions must be constant expressions 的問題android

 

寫了一個express

 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:  出現了錯誤app

錯誤提示爲:case expressions must be constant expressionsthis

網上查了一下  發現是 個人工程  勾選了isLibrary  的緣由。spa

解決以下:project--->properties--->android--->library--->勾掉is library--->apply--->okcode

 

緣由分析:adnroid項目之間引用 剛被引用項目設置成is library後R文件中的變量fianl所有丟失具體什麼緣由不清楚,項目設置成is library後switch() 判斷控件提示:blog

case expressions must be constant expressionsget

得知 case 必需要常量,不能是變量。把項目中的switch改成if else正常,若是不解決這個問題主項目轉子項目的時候控件返回是NULLit

相關文章
相關標籤/搜索