Поиск…


замечания

Инструмент Lint проверяет исходные файлы проекта Android на возможные ошибки и улучшает оптимизацию для правильности, безопасности, производительности, удобства использования, доступности и интернационализации. Вы можете запустить Lint из командной строки или из Android Studio.

Официальная документация:

https://developer.android.com/studio/write/lint.html

Использование инструментов: игнорировать в xml-файлах

Инструменты атрибута tools:ignore можно использовать в файлах xml, чтобы убрать предупреждения lint.

НО отклонение предупреждений lint с этой техникой в ​​большинстве случаев является неправильным способом продолжения.

Предупреждение о завязке должно быть понято и исправлено ... его можно игнорировать, если и только если у вас есть полное понимание его смысла и сильная причина его игнорировать.

Вот прецедент, когда законно игнорировать предупреждение:

  • Вы разрабатываете системное приложение (подписанное с ключом производителя устройства)
  • Вашему приложению необходимо изменить дату устройства (или любое другое защищенное действие)

Затем вы можете сделать это в своем манифесте: (т. Е. Запрашивать защищенное разрешение и игнорировать предупреждение о линии, потому что вы знаете, что в вашем случае разрешение будет предоставлено)

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      ...>
    <uses-permission android:name="android.permission.SET_TIME"
        tools:ignore="ProtectedPermissions"/>

Импорт ресурсов без ошибки «Устаревшая»

Используя Android API 23 или выше, очень часто можно увидеть такую ​​ситуацию:

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

Эта ситуация вызвана структурными изменениями API Android в отношении получения ресурсов. Теперь функция:

public int getColor(@ColorRes int id, @Nullable Theme theme) throws NotFoundException    

должен быть использован. Но в библиотеке android.support.v4 есть другое решение.

Добавьте следующую зависимость в файл build.gradle:

com.android.support:support-v4:24.0.0

Затем доступны все методы из библиотеки поддержки:

ContextCompat.getColor(context, R.color.colorPrimaryDark);
ContextCompat.getDrawable(context, R.drawable.btn_check);
ContextCompat.getColorStateList(context, R.color.colorPrimary);
DrawableCompat.setTint(drawable);
ContextCompat.getColor(context,R.color.colorPrimaryDark));

Кроме того, можно использовать больше методов из библиотеки поддержки:

ViewCompat.setElevation(textView, 1F);
ViewCompat.animate(textView);
TextViewCompat.setTextAppearance(textView, R.style.AppThemeTextStyle);
...

Настроить LintOptions с помощью градиента

Вы можете настроить пух, добавив lintOptions раздел в build.gradle файл:

android {

    //.....

    lintOptions {
        // turn off checking the given issue id's
        disable 'TypographyFractions','TypographyQuotes'

        // turn on the given issue id's
        enable 'RtlHardcoded','RtlCompat', 'RtlEnabled'

        // check *only* the given issue id's
        check 'NewApi', 'InlinedApi'

       // set to true to turn off analysis progress reporting by lint
       quiet true
 
       // if true, stop the gradle build if errors are found
       abortOnError false
   
       // if true, only report errors
       ignoreWarnings true
    }
}

Вы можете запустить lint для определенного варианта (см. Ниже), например ./gradlew lintRelease , или для всех вариантов ( ./gradlew lint ), и в этом случае он создает отчет, в котором описываются конкретные варианты, к которым относится данная проблема.

Проверьте здесь ссылку DSL для всех доступных опций .

Как настроить файл lint.xml

Вы можете указать свои настройки проверки Lint в файле lint.xml . Если вы создаете этот файл вручную, поместите его в корневой каталог вашего Android-проекта. Если вы настраиваете настройки Lint в Android Studio, файл lint.xml автоматически создается и добавляется в ваш проект Android для вас.

Пример:

<?xml version="1.0" encoding="UTF-8"?>
    <lint>
        <!-- list of issues to configure -->
</lint>

Установив значение атрибута серьезности в теге, вы можете отключить проверку Lint для проблемы или изменить уровень серьезности проблемы.

В следующем примере показано содержимое файла lint.xml .

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <!-- Disable the given check in this project -->
    <issue id="IconMissingDensityFolder" severity="ignore" />

    <!-- Ignore the ObsoleteLayoutParam issue in the specified files -->
    <issue id="ObsoleteLayoutParam">
        <ignore path="res/layout/activation.xml" />
        <ignore path="res/layout-xlarge/activation.xml" />
    </issue>

    <!-- Ignore the UselessLeaf issue in the specified file -->
    <issue id="UselessLeaf">
        <ignore path="res/layout/main.xml" />
    </issue>

    <!-- Change the severity of hardcoded strings to "error" -->
    <issue id="HardcodedText" severity="error" />
</lint>

Настройка проверки линта в исходных файлах Java и XML

Вы можете отключить проверку Lint из ваших исходных файлов Java и XML.

Настройка проверки lint в Java

Чтобы отключить проверку Lint специально для Java-класса или метода в вашем проекте Android, добавьте аннотацию @SuppressLint к этому Java-коду.

Пример:

@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

Чтобы отключить проверку всех проблем Lint:

@SuppressLint("all")

Настройка проверки линта в XML

Вы можете использовать атрибуты tools:ignore чтобы отключить проверку Lint для определенных разделов ваших XML-файлов .

Например:

tools:ignore="NewApi,StringFormatInvalid"

Чтобы подавить проверку всех проблем Lint в элементе XML, используйте

tools:ignore="all"

Отказ от комментариев

Хорошая практика отметить некоторые предупреждения в коде. Например, некоторые устаревшие методы необходимы для вашего тестирования или старой версии поддержки. Но проверка Lint отметит этот код предупреждениями. Чтобы избежать этой проблемы, вам нужно использовать аннотацию @SuppressWarnings.

Например, добавьте игнорирование предупреждений на устаревшие методы. Вы также должны указать описание предупреждений в аннотации:

@SuppressWarnings("deprecated");
public void setAnotherColor (int newColor) {
    getApplicationContext().getResources().getColor(newColor)
}

Используя эту аннотацию, вы можете игнорировать все предупреждения, включая Lint, Android и другие. Использование Suppress Warnings помогает правильно понять код!



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow