Подтвердить что ты не робот

Как удалить неиспользуемый строковый ресурс для всех конфигураций в Android Studio?

Я нашел неиспользуемый ресурс строки, например:

<string name="obsoletestring">my name is null!</string>

Однако он находится в десятках файлов разных языков в разных файлах strings.xml в папках values, values-af, values-be и т.д.

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

tl; dr Как удалить неиспользуемый строковый ресурс для всех конфигураций?

4b9b3361

Ответ 1

Теперь возможно внутри Android Studio. После проверки Lint вы увидите опцию справа Удалить все неиспользуемые ресурсы!

введите описание изображения здесь

Чтобы удалить один строковый ресурс во всех файлах локали, вы можете использовать "Редактор переводов". 1. Щелкните правой кнопкой мыши по директории res, чтобы открыть редактор перевода. 2. Выберите селектор "Показать все ключи" и выберите "Фильтровать по тексту". Укажите имя ресурса, который вы хотите удалить. 3. Выберите ресурс и нажмите кнопку "-"

Ответ 2

Чтобы определить все неиспользуемые ресурсы:

  • Открыть меню > Анализ > Запустить проверку по имени...
  • Выберите "Неиспользуемые ресурсы"
  • Убедитесь, что выбран весь проект, затем нажмите OK.
  • Посмотрите список. Вы всегда можете повторить проверку с помощью кнопки повтора.

В Android Studio (v 1.0) нет простого способа удалить строку ресурсов для всех локалей. Однако вы можете искать и заменять файлы. К счастью, в большинстве случаев файлы перевода используют только одну строку, поэтому это работает очень хорошо.

В Android Studio:

  • Начните без изменений, ожидающих контроля вашего источника (упрощается проверка и откат, если это не так).
  • Откройте меню > Изменить > Найти > Заменить в пути...
  • В тексте, чтобы найти: .*name="obsoletestring".*\n
  • В Заменить с: (пусто)
  • Проверить регулярное выражение
  • Нажмите кнопку "Найти".
  • Проверьте результаты. Если все в порядке, нажмите кнопку "Все файлы".
  • Вам, вероятно, придется вручную удалить комментарий в res/values ​​/strings.xml.
  • Убедитесь, что ваш проект все еще построен.
  • Взгляните на разницу в вашем проекте в исходном элементе управления, чтобы убедиться, что это действительно то, что вы намеревались...

Ответ 3

Пока поддержка IDE не появится, что-то в этом направлении будет работать:

find -name strings.xml|xargs -rd\\n  sed -ri '/"string_to_delete"/d'

Ответ 4

В Android Studio 2.3 можно удалить все неиспользуемые ресурсы.

  • Откройте любой *.xml в каталоге res/values ​​/
  • Щелкните правой кнопкой мыши на любом имени элемента
  • Refactor -> Remove Unused Resources...

Ответ 5

К сожалению, вам нужно сделать это вручную.

Отметьте этот ответ, чтобы понять, что именно вы должны сделать, чтобы избавиться от них, используя Eclipse

Если вы используете Android Studio, найдите их во всем приложении, а также удалите вручную. Проверьте .

Ответ 6

  • Меню → Анализ → Запуск проверки по имени → Неиспользуемые ресурсы
  • Из результатов выберите все неиспользуемые ресурсы строки.

    • Щелкните правой кнопкой мыши выделенные строки и выберите "Подавить с помощью @SuppressLint (Java) или инструментов: ignore (XML)". Это добавит инструменты атрибута: игнорировать все строки во всех строковых файлах.
  • Меню → Найти → Заменить в пути

    • Текст для поиска: ^. *? tools: ignore = "UnusedResources". *?\n
    • Отметьте поле регулярных выражений
    • Область использования: пользовательский
      • Откройте редактор настраиваемых областей и добавьте шаблон: file [app]: src/main/res//strings.xml
    • Найти
    • Etc.

Ответ 7

Фактически, Android Lint должен сообщать о неиспользуемых ресурсах, но вы также можете попробовать этот плагин.

Ответ 8

Помните, что команда REMOVE UNUSED RESOURCES не может распознать программно доступный ресурс в качестве используемого ресурса (например, getIdentifier (..) и т.д.). Таким образом, если вы так обращаетесь к ресурсам, очень рискованно использовать эту команду!