簡體   English   中英

Android:錯誤-案例表達式必須是常量表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM