Странная ошибка в R.java, даже после очистки проекта: "Подчеркивания могут использоваться только с уровнем 1,7 или выше", - программирование
Подтвердить что ты не робот

Странная ошибка в R.java, даже после очистки проекта: "Подчеркивания могут использоваться только с уровнем 1,7 или выше",

Итак, все прошло довольно хорошо, пока совсем недавно, когда R.java решил получить эту ошибку после добавления значка (5_content_new.png, если быть точным).

Я пробовал очистить проект и перезапустить eclipse, но безрезультатно.

Код проблемы:

public static final class drawable {
    public static final int 5_content_new=0x7f020000;
    public static final int ic_launcher=0x7f020001;
    ...
}

Красная строка отображается под 5_, и ошибка говорит:

Underscores can only be used with source level 1.7 or greater

Кто-нибудь сталкивался с такой проблемой раньше?

4b9b3361

Ответ 1

Это комбинация двух вещей:

  • Идентификаторы Java не могут начинаться с цифры. Первый символ должен быть буквой.

  • В Java 7 они ввели альтернативные синтаксисы для целочисленных литералов; например 1_000 совпадает с 1000.

Итак, что происходит, компилятор разбирает 5_content_new как 5_ content_new... что разумно, если исходный уровень был Java 7, а затем говорит вам, что вы не используете Java 7. Если вы были используя Java 7, эта ошибка компиляции была бы заменена ошибкой, в которой говорилось, что целочисленный литерал (5_) не был законным в этой точке.

Короче говоря, код содержит что-то такое "от стены", которое автор компилятора не ожидал в диагностическом коде компилятора.


Другой момент заключается в том, что использование ANY подчеркивания в переменной, методе, классе или имени пакета в Java является нарушением стиля. Подчеркивания следует использовать только в именах констант all-caps, таких как "MAX_VALUE".

Ответ 2

Я только что попробовал переименовать существующий чертеж в компилирующемся проекте Android, и Eclipse забросил этот диалог:

Eclipse Error (Если вы не можете увидеть изображение очень хорошо, диалоговое окно говорит, что имя ресурса должно начинаться с символа.

Способ, которым я создал это диалоговое окно, - это переименование файла с возможностью рисования. Выделенное оригинальное имя было button_blue_normal.9.png, переименовано в 5_button_blue_normal.9.png и нажато enter. Диалог появился сразу после нажатия клавиши ввода.

Я никогда не знал этого, но, видимо, вам понадобится буквенный символ , а не цифра, в самом начале имени файла с возможностью рисования.

Ответ 3

Я знаю, что опаздываю на вечеринку, но я просто столкнулся с этим сам, когда начал работать с компонентом ActionBar.

Ответ ScootrNova привел меня к решению. Проблема заключалась в рекомендованном Android пакетом значков, который я загрузил для использования в учебниках. Все имена файлов начинались с целых чисел (1_xxx.png и т.д.). Я удалил те, которые я не использовал, переименовал других в то, что начиналось с буквы (в качестве примера я использовал "icon_xxx.png" ), и он скомпилирован без ошибок.

Ответ 4

У меня была та же проблема, и я решил ее после ввода цифры после текста не в начале. У меня была строка 2_Activity, и я изменил ее на Activity2. Это было мое решение. Надеюсь, что это поможет кому-то.

Ответ 5

У меня была та же проблема. Разрешение. Посмотрите на файлы res, drawlables или внутри xml и переименуйте файлы или строки, которые начинаются с (строка подчеркивания подчеркивания) 1_string в string_1.

Надеемся, что это поможет решить проблему.