оригинальная версия версия для слабовидящих контрастная версия выключить изображения включить изображения RSS FEED K2 NEWS
Воскресенье, 25 Август 2019 00:01

Cannot resolve symbol @color/white

С появлением Интернета стало намного проще обмениваться информацией – с одной стороны и труднее в этой информации разбираться – с другой. Проще, в том смысле, что не нужно молиться небесам, чтобы найти книгу или отдельно взятую статью «по интересам», всё есть в Интернете, а сложнее потому что в этой самой статье вполне вероятно, есть ответ на интересующий Вас вопрос, но велик риск его реализация описана при других условиях.

Объясню на примере, открыл обзорную статью по Android Studio, а там среди прочего кода, была вот такая строчка:

<item android:drawable="@color/gray"/>

И компилятор, будь он неладен говорит мне о том, что у меня ошибка:

cannot resolve symbol @color/white

Я в Интернеты, найти, может кто сталкивался с этим. И таки да, варианты разные, у кого так, у кого ошибка выглядела так:

cannot resolve symbol @color/gray

Обязательно находились умники, кто как в анекдоте про русскую техническую поддержку – высмеивал людей, что искали ответ на вопрос, что за ошибка такая. И все насмешки собственно сводились к одной фразе – «не знаешь Java, не лезь в Android», так люди то в Интернет как раз и лезут, чтоб узнать.

Но ларчик на самом деле просто открывался, сама по себе ошибка сообщает нам, что не задана переменная (символ) @color/gray, вопрос в том, где и как её «задать». Для этого переходим:

(Проект) > app > src > main > res > values > colors.xml

И здесь между <resources> и </resources> добавляем строки, аналогично тем, что там уже есть, но с интересующими нас именами цветов.

Android, Java @color/white

<color name="gray">#111111</color>

<color name="white">#FFFFFF</color>

После объявления переменных, оповещение об ошибке должно исчезнуть.

Спонсоры: