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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM