У меня есть модуль, который Я знаю, включает в себя некоторые неиспользуемые цветовые ресурсы. Когда я запускаю lint из Android Studio, он включает ожидаемый вывод. Однако, когда я запускаю его из командной строки, он не находит эти неиспользуемые ресурсы.
Как получить из командной строки сообщение об этих неиспользуемых ресурсах (желательно в качестве предупреждения)?
Работает пух от Android Studio
Выполнить проверку по имени:
![enter image description here](https://i.stack.imgur.com/49pnX.png)
Вывод:
![enter image description here](https://i.stack.imgur.com/5uIie.png)
Запуск lint из командной строки (с использованием gradle)
Моя конфигурация build.gradle:
lintOptions {
check 'UnusedResources'
}
Фактически выполняется задача :
$ ./gradlew :lib:lint
> Task :lib:lint
Ran lint on variant release: 0 issues found
Ran lint on variant debug: 0 issues found
BUILD SUCCESSFUL in 2s
Я знаю, что конфигурация gradle "работает", потому что, если я удаляю строку check 'UnusedResources'
, она обнаружит другие проблемы (check
заставляет ее выполнить только одну проверку). Также примечательно, что указание check 'ThisIsObviouslyNonsense'
дает тот же вывод («успешный» запуск, который находит ноль проблем).
Воспроизведение проблемы
Я не могу предоставить реальный исходный код, но воспроизвести проблему в новом проекте очень просто.
- Используйте мастер студии Android для создания нового проекта. (Я выбрал «Пустое действие», Kotlin и минимальный API 19.)
- Добавьте это к своим цветам. xml:
<color name="unused">#f00</color>
- Откройте
app/build.gradle
и выполните следующие действия: - Измените
apply plugin: 'com.android.application'
на apply plugin: 'com.android.library'
- Удалите строку
applicationId
из defaultConfig
- Добавьте этот блок
lintOptions
к android
block:
lintOptions {
check 'UnusedResources'
}
Теперь go в командной строке и запустить ./gradlew lint
. Вы увидите 0 проблем.
Примечательно, что все кажется работающим перед преобразованием модуля в библиотеку (запуск lint обнаруживает неиспользуемый ресурс цвета просто замечательно). Это может иметь отношение к тому факту, что библиотечные ресурсы считаются "publi c" ... но в моей реальной библиотеке мы явно объявили, что ресурсы являются частными по умолчанию.