Как включить проверку линзы Android для аннотации @Nullable?

Я заметил, что Android Studio проверяет, что @Nullable не игнорируется в коде:

ех.

 @Nullable MyObject getMyObject(); ... MyObject o = getMyObject(); o.method(); 

^ Method invocation 'method' may produce 'java.lang.NullPointerException'

Это обеспечивается предупреждением NullableProblems IntelliJ.

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

Solutions Collecting From Web of "Как включить проверку линзы Android для аннотации @Nullable?"

Если рассматриваемая проверка была линией, был бы способ настройки lintOptions внутри вашего build.gradle чтобы заставить сборки не сработать, как в ответах на этот вопрос здесь

Однако проверка, о которой вы говорите, предоставляется самой IDE в Android Studio. В настоящее время нет способа остановить сборку для этих проверок, в соответствии с этим каноническим ответом от разработчика IntelliJ. Ниже приведена ссылка на документацию для этого статического анализа кода, предоставляемого IntelliJ. В рамках анализа, описанного в документации, конкретное имя – «Константные условия и исключения»:

Эта инспекция анализирует контроль методов и поток данных, чтобы сообщать о возможных условиях, которые всегда являются истинными или ложными, выражения, значение которых статически доказано как постоянное, и ситуации, которые могут привести к нарушениям контракта с ошибкой. Переменные, параметры метода и возвращаемые значения, отмеченные как @Nullable или @NotNull, обрабатываются как nullable (или не-null, соответственно) и используются во время анализа для проверки контрактов с неопределяемостью, например, сообщают возможные ошибки NullPointerException.

Я думаю, что лучшее, что вы можете сделать, это изменить его серьезность, чтобы оно выглядело как предупреждение (красное подчеркнуто в IDE). Сделайте это так, перейдите в раздел «Предпочтения / Проверки / Вероятные ошибки» и измените строгость «Константные условия и исключения» на предупреждение:

Вероятный раздел ошибок Inspections в Android Studio

Ваш проект будет по-прежнему строиться, если вы проигнорируете предупреждение, но он не выглядит красивым:

Красная подчеркивание при вызове получает результат метода, который является @Nullable

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

Также обратите внимание, что вы также можете включить флажок «Зафиксировать изменения / выполнить проверку кода», который заставит анализ кода до того, как команда совершит.

Зафиксировать изменения в Android Studio

Когда вы нажимаете commit, он сначала выполняет анализ и находит предупреждение, о котором вы говорили:

Диалоговое окно анализа кода в Android Studio

Также обратите внимание, что принуждение команды к проведению таких проверок может быть не лучшим вариантом, если NPE становятся проблематичными в проекте. Вместо этого вы можете попробовать варианты, например, открыто обсуждать проблемы, возвращающие null и возможные решения. Эта отличная статья об исключении null в вики Google Guava – отличная отправная точка.

Если вы хотите, чтобы lint выдавал ошибку, когда определенные правила нарушены в исходном коде, вы можете определенно настроить проект таким образом, чтобы исходная компиляция останавливалась. Я мог бы написать весь процесс, но эта ссылка более или менее суммирует все это – http://www.kiodev.com/android-studio-lint-options/

Также перейдите по ссылке doc для Android – https://developer.android.com/studio/write/lint.html

Примечание. Analyze в Android Studio Menu в основном использует как Lint, так и встроенную Intellij Idea Code inspection