[英]Android:Error - Case expressions must be constant expressions
我一直在開發應用程序,最近又買了一台新計算機。 我必須將現有代碼導入這台計算機。 現在,當我這樣做時,在構建路徑中會遇到一些錯誤,因此我將其修復。 但是現在,我在各種情況下都遇到錯誤。 它說:case表達式必須是常量表達式。
我的代碼示例:
case R.id.b3:
a.putExtra("Green", "green");
startActivity(a);
break;
case R.id.b4:
a.putExtra("Pink", "pink");
startActivity(a);
break;
我收到按鈕ID上的錯誤。 在我使用的另一台計算機上,一切正常,因此我不確定為什么現在會出現此錯誤。 我用google搜索了,我讀到我應該用if else語句替換它們,但是替換所有的switch和case會很麻煩,所以我想避免這種情況。
為什么在導入的代碼上會發生這種情況?
當您的資源在庫項目中定義時,就會發生這種情況。 我認為,Android插件的較新版本之一需要基於對庫項目的編譯方式進行更改的要求。 if-else是必需的。 IDE將自動為您執行此操作。 如果突出顯示switch關鍵字並按ctrl-1,則應該有一個選項可以自動進行更改。
你可以在這里閱讀。
檢查您正在使用的活動(會給您帶來錯誤的活動),並在其中查找這一行代碼
import android.R;
刪除它! 執行干凈,一切都應該工作
自從ADT14 更改了工具鏈后不久以來,就沒有保證id在庫中是恆定的。
這可能是您正在使用third_party庫,為了使您能夠快速開發應用程序並能夠使用多個庫,資源ID未定義為final,因此您必須使用if / else而不是switch / case 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.