Sergio 2.1
Оракул
(67306)
1 год назад
Эта ошибка может возникнуть, если вы используете библиотеку проекта. В библиотечном проекте константы в классе ресурсов R объявляются как public static int, а не как public static final int. Это означает, что константы не являются финальными в библиотечном проекте, и ваш код больше не будет компилироваться. Решение этой проблемы простое: замените оператор switch на оператор if-else. Вы можете быстро преобразовать оператор switch в оператор if-else, используя следующее: В Eclipse переместите курсор на ключевое слово switch и нажмите Ctrl + 1, затем выберите "Convert ‘switch’ to ‘if-else’".
В чем причина?
int translateIdToIndex(int id) {
int index = -1;
switch (id) {
case R.id .button1:
index = 1;
break;
case R.id .button2:
index = 2;
break;
case R.id .button3:
index = 3;
break;
}
return index;
}
В данном коде Android Studio выдает ошибки:
error: constant expression required
case R.id .button1:
error: constant expression required
case R.id .button2:
error: constant expression required
case R.id .button3: