今天無心中遇見了 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