Android Studio lint_baseline.xml не исключает многих проблем, которые должны

У меня есть это в моем build.gradle:

android {
  lintOptions {
    abortOnError false
    absolutePaths false
    lintConfig file('lint.xml')
    baseline file('lint-baseline.xml')
  }
}

И я запускал Analyze > Inspect Code ранее, чтобы установить этот базовый уровень. Я также подтвердил, что этот файл действительно существует и содержит проблемы, которые следует игнорировать.

Однако у меня все еще появляется много предупреждений, когда я запускаю Analyze > Inspect Code. Похоже, что проблемы, которые не исключены на основе базового уровня, не перечислены lint --list/перечисленными здесь.

К ним относятся «Неиспользуемое объявление», «Поле может быть локальным» и т. д.

Есть ли способ отфильтровать и их? Почему проверка кода проверяет наличие предупреждений/ошибок, которые lint не перечисляет как проблемы?


person Jeff Johnson    schedule 31.08.2017    source источник


Ответы (1)


Из проверок Android Studio:

Lint можно настроить с помощью «базового уровня»; набор текущих проблем, обнаруженных в кодовой базе, которые будущие запуски lint будут молча игнорировать. Сообщается только о новых проблемах, не обнаруженных в базовом плане.

Обратите внимание, что при открытии файлов в среде IDE базовые проблемы не отфильтровываются; цель базовых показателей — позволить вам начать использовать lint и сломать сборку на всех вновь появившихся ошибках, не возвращаясь назад и не исправляя всю кодовую базу заранее. Однако, когда вы открываете существующие файлы, вы все равно хотите быть в курсе и исправлять проблемы по мере их возникновения.

Этот тип задачи используется для создания двух типов информационных сообщений в отчетах: во-первых, были ли отфильтрованы какие-либо проблемы, чтобы у вас не было ложного чувства безопасности, если вы забыли, что проверили базовый файл, и во-вторых, были ли исправлены какие-либо проблемы в базовом файле, чтобы вы могли перестать их фильтровать и получать предупреждения, если проблемы появятся снова.

Я просто задавался тем же вопросом. Может быть, это поможет объяснить некоторые вещи.

Базовая функция предназначена для того, чтобы скрыть ошибки линтинга в консоли и сделать так, чтобы новые предупреждения/ошибки нарушали сборку. К сожалению, это не подавляет проверки Android Studio.

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

person Joshua King    schedule 12.09.2017
comment
Если я правильно вас понимаю, вы говорите о том, что базовый уровень lint не будет подавлять проблемы при просмотре файла в IDE, да? Если это так, то это не совсем то, о чем я говорю. Скорее, я вижу фактический возврат проверки с проблемами lint при запуске проверки кода сразу после установки базового уровня без каких-либо изменений кода. Мне кажется, что это противоречит самой цели установления базовой линии. - person Jeff Johnson; 15.09.2017
comment
Хорошо так и так и нет. Базовый уровень влияет ТОЛЬКО на инструмент CLI/задачу Gradle. Запустите задачу lint в своем модуле. Если он настроен правильно, он будет использовать базовый уровень и не будет сообщать об ошибке/предупреждении, за исключением простого уведомления о том, что он использует базовый уровень. Когда я запускаю его через задачу Gradle, он работает, как и ожидалось, но только для инструмента CLI, а не для Analyze > Inspect Code. Таким образом, базовый уровень не может ни на что повлиять в среде IDE: на встроенные проверки открытого файла или Analyze > Inspect Code окна. Он может подавлять предупреждения/ошибки только при запуске из инструмента CLI/Gradle. - person Joshua King; 16.09.2017