Я обновил AS до последней стабильной сборки, и все мои проекты расплавились. Только файлы Java в основном каталоге (com.company.app) могут найти R.java должным образом. ВСЕ мои поддиры не могут его найти. Перед обновлением мне не нужно было импортировать R.java. Я перестраивал свои проекты с нуля, восстанавливал резервные копии, копировал и вставлял в новые проекты из резервных копий, переустанавливал AS, перезагружал ПК, недействовал кеши и перезагружал, очищал буквально каждый раз, чтобы использовать решение insta-fix-it, которое всегда рекомендует Интернет, и все же Я не могу заставить это работать.
Может ли кто-нибудь сказать мне, как мои подкаталоги не могут найти R.java, но другие файлы в моем основном каталоге могут? Это изменение функции в AS или что-то в этом роде? Мы теперь должны импортировать R.java? Ошибок XML нет. Мой проект был создан до того, как я переместил файлы подкаталогов обратно в свой основной пакет. Имя пакета в точности совпадает с именем в моем манифесте.
Изменить 1: я могу перестроить свой проект и сделать R.java. Файлы основного пакета по-прежнему видят его без импорта, но подкаталоги не могут его найти.
Изменить 2: я могу переместить файл из основного пакета в подкаталог, и он все еще находит R.java. Похоже, это глюк компилятора.
Изменить 3: импорт R.java устраняет ошибки, поэтому я думаю, что это решение. Я оставляю вопрос открытым, потому что это не имеет логического смысла.




Вы должны понимать, как работают ресурсы приложения.
Когда вы создаете свой проект Android, все ваши ресурсы в папке /res будут автоматически сопоставлены с сгенерированным классом your.package.names.R.
Теперь вы хотите получить доступ к ресурсам через класс. Это имеет смысл только тогда, когда вам нужно импортировать файл, когда вы используете его в другом пакете.
Я делаю приложения уже 4 года. Я понимаю, как они работают. Это требование является новым на этой неделе.
У меня была эта проблема, хотя ошибка не была подчеркнута красным, в моем strings.xml была ошибка. Перейдите в Values-> strings.xml и проверьте, не дублировали ли вы какие-либо строки.
Нет такой удачи. Однако спасибо. Я буду везде проверять наличие дубликатов, но, поскольку проект был создан до обновления моей AS, я буду удивлен, если я их увижу.
Класс
Rавтоматически создается во время компиляции. Всякий раз, когда у меня возникает эта проблема, оказывается, что я неправильно назвал пакет. Убедитесь, что имя пакета в подкаталоге совпадает с объявленным в манифесте. Кроме того, вы говорите «подкаталог», я полагаю, вы имели в виду «пакет», поскольку файлы Java могут быть размещены в любом месте независимо от структуры каталогов и важны, как если бы они находились в одном каталоге.