2013-03-06 6 views
11

Wenn ich versuche, mein Android-Projekt in IntelliJ zu bauen, bekomme ich Fehler auf jeder switch-Anweisung, die Fälle Ids aus dem verwenden R.java.IntelliJ/Android -> "Java: Konstanter Ausdruck erforderlich" im Fall R.id.viewId

Beispiel:

switch (item.getItemId()) { 

    case android.R.id.home: 
    NavUtils.navigateUpTo(this, DashboardActivity.upIntent(this)); 
    return true; 

    case R.id.orders_options_add: 
    handleAddItem(); 
    return true; 

    case R.id.orders_options_reorder: 
    handleReorder(); 
    finish(); 
    return true; 
} 

Wer weiß, wie dieses Problem zu lösen?

+1

Überprüfen Sie, damit Sie keine falschen R-Importe in der Klasse erhalten haben. – kaderud

Antwort

10

Ressourcen-IDs sind seit ADT Version 14 keine Konstanten in einem Bibliotheksprojekt, daher können Sie sie nicht in der switch-Anweisung verwenden. Verwenden Sie stattdessen if() {} else if() {} ....

Weiterführende Informationen finden Sie unter here.

+1

Dies gilt nur für Ressourcen, die nicht von Ihrer eigenen App erstellt werden. – keyboardsurfer

+0

Nein, es zählt für alle in einem Bibliotheksprojekt erstellten Ressourcen –

+7

Sie sind ** falsch **. Und es sagt so vielmals in diesem Link, dass es sich nur um ein ** Bibliothek ** Projekt handelt. – kaderud

Verwandte Themen