Вот мои значения \ strings.xml (файл по умолчанию), и все говорит само за себя:
Мои вопросы):
- Как он может быть «не найден в локали по умолчанию», если я редактирую локаль по умолчанию (values \ strings.xml)?
- Как это может быть ошибка перевода линта, если я ставил
translatable="false"
? В папках values-pl \ strings.xml (а также values-ru, values-iw) строки даже не существуют? в любом случае не должно. - Я не могу понять, почему я не получаю ошибку для русской строки.
(Я бы показал здесь values-ru \ string.xml или values-pl \ string.xml, но там нет ничего интересного, так как строки все равно отсутствуют ...)
Ответы:
это случилось и со мной
Я делаю 2 вещи:
источник
Invalidate Caches / Restart
. Чтобы не искать в комментариях, как я например сделал.Восстановление может занять много времени. YMMV, но ...
Просто удалите оскорбительную строку и снова добавьте ее.
Работал у меня. Очень быстро.
источник
В моем случае мне это помогло:
Если это не сработает, попробуйте добавить те же строки в
strings.xml(v21)
файл.источник
Нажмите Invalidate Caches / Restart ..., чтобы перезапустить студию Android. У меня это сработало. На самом деле это произошло, когда я скопировал файлы с другого компьютера и вставил их через проводник.
источник
У меня было такое же сообщение об ошибке, только с той странной проблемой, что оно было выброшено в самой локали по умолчанию и во всех переводах. Оказывается, вы не должны использовать точки в своем имени (например, name = "bla.blub"), потому что оно будет внутренне преобразовано в "bla_blub", а затем не сможет совпадать с "bla.blub", отсюда и ошибка. Мне нужно было только заменить точки на подчеркивание в локали по умолчанию, а затем все другие ошибки в других переводах (включая точки в имени) также исчезли.
Но имейте в виду, что другие инструменты сборки по-прежнему могут создавать проблемы, поэтому замените все точки подчеркиванием!
источник
Выход из Android Studio и перезапуск исправили это для меня.
источник
Я решил эту проблему, выполнив следующие шаги:
очистка моего проекта
восстанавливая это
и, наконец, нажав недопустимые кеши / перезапустить в меню файла
источник
Я создал инструмент для управления статусом перевода приложений для Android. Он не только сообщает вам, какие строки отсутствуют на других языках, но также может сообщать и очищать оставшиеся строки, которые вы, возможно, удалили в файле перевода по умолчанию.
https://github.com/gubatron/android-missing-strings
Чтобы очистить все остатки на других языках, вызовите вот так
Это очистит оставшиеся строки и выведет отчет об отсутствующих строках для всех языков в файл all.txt.
источник
Вам просто нужно скопировать строку с нарушением (или только одну из нескольких строк с нарушением), удалить ее и снова вставить. Это устранило проблему для меня.
источник
Просто убедитесь, что у вас есть одинаковые соглашения об именах для всех строковых файлов, включая одинаковые заглавные буквы. скажем, если у вас есть «sign_in» в strings.xml и «sign_In» в вашем fr / string.xml, поэтому он выдаст вам ошибку на fr / strings.xml, например, «переведено здесь, но не найдено в локали по умолчанию». Итак, когда вы редактируете "sign_in". Ошибка удалим.
источник
Копирование и вставка у меня не работали.
Я также попробовал очистить и перезапустить, предыдущая ошибка исчезла, но новые введенные строки все еще имеют новые ошибки.
Я попытался закрыть открытый файл strings.xml и редактор переводов , а затем перезапустить.
файл strings.xml и редактор переводов
Это подходит для меня.
источник
У меня была эта проблема для всех строк в моем XML-файле.
Дело в том, что по умолчанию у вас
strings.xml
не должно бытьtools:locale
атрибута, как у других переведенных файлов. Если это так, то всякий раз, когда я компилирую приложение в режиме выпуска, оно обрабатывает его как еще один переведенный файл.источник