Тег регистрации может содержать не более 23 символов

Начиная с обновления AS 1.1 Preview 2, я получаю красные строки под всеми сообщениями Log

 Log.d(TAG, "message"); 

С сообщением: « Тег регистрации может содержать не более 23 символов .. ».

Я ничего не обновлял, кроме Android Studio. Это ошибка?

Нет, это не ошибка.

Из недавних изменений Android Studio в версии 1.1 Preview 2 ,

Проверяет, что тег передан на вызовы регистрации, если его значение может быть разрешено, длиной не более 23 символов (в соответствии с требованиями API ведения журнала).

Тег регистрации был 31

Как кратко объяснили последние изменения, это связано с тем, что Log API не позволяет тегу превышать 23 символа.

У SLF4J Android есть объяснение:

[…] длина таких тегов ограничена в настоящее время 23 символами (23 = 32 – 8 для префикса пространства имен – 1 для терминатора C)

Который соответствует исходному коду Android .

В настоящее время единственной функцией, которая явно упоминает это исключение, является Log.isLoggable() ,

Броски

IllegalArgumentException вызывается, если tag.length ()> 23.

Однако, основываясь на комментариях, по-видимому, регистратор действительно генерирует исключение в режиме выпуска (он игнорируется в режиме отладки).

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

Вы можете отключить его, если захотите.

В Android Studio, Analyze-> Inspect Code.

Скриншот

В разделе «Профиль осмотра» нажмите кнопку с тремя горизонтальными точками.

Откроется следующее окно. Найдите «журнал» и снимите флажок «Слишком длинные теги журнала».

Скриншот

Обновление: Android Studio 2.2, он находится под Android Lint: Правильность

Скриншот

Дополняя ответ by @Terence

Вы также можете отключить конкретную проверку через gradle с помощью этого файла build.gradle:

 lintOptions { disable 'LongLogTag' } 

Или добавив файл lint.xml в ваш проект с помощью xml:

 <?xml version="1.0" encoding="UTF-8"?> <lint> <issue id="LongLogTag" severity="ignore" /> </lint> 

Это недавнее изменение и в этой сборке – новая проверка на линт. Что говорит,

Проверяет, что тег передан на вызовы регистрации, если его значение может быть разрешено, длиной не более 23 символов (в соответствии с требованиями API ведения журнала).

Для получения дополнительной информации прочитайте третий пункт в ссылке ниже.

https://sites.google.com/a/android.com/tools/recent/androidstudio11preview2

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

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

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