日志标记最多可以是23个字符

自更新AS 1.1预览版2以来,我在我的所有Log消息下都看到红线

 Log.d(TAG, "message"); 

用消息:“ 日志标记可以是至多23个字符.. ”。

除了Android Studio本身,我没有从根本上更新任何东西。 这是一个错误?

不,这不是一个错误。

从Android Studio 1.1的Preview 2上的最近更改 ,

检查传递给日志logging调用的标记是否可以parsing,最长为23个字符(根据Logging API的要求)。

日志标记是31

正如最近的变化简单解释的,这是由于Log API不允许超过23个字符的标签。

SLF4J Android对此有一个解释:

这些标签的长度目前限制为23个字符(命名空间前缀为23 = 32 – 8,C终止符为1)

它与Android的源代码相匹配。

目前,明确提到这个exception的唯一函数是Log.isLoggable()

抛出

如果tag.length()> 23,则抛出IllegalArgumentException

但是,根据这些注释,显然logging器会在释放模式下抛出exception(在debugging模式下它会被忽略)。

你可以按照特伦斯的回答来禁用皮棉检查,但是你已经被警告过了。

如果您愿意,可以禁用它。

在Android Studio中,分析 – >检查代码。

截图

在检查configuration文件下,点击3个水平点的button。

以下窗口应该打开。 search“日志”并取消选中“太长的日志标记”。

截图

更新: Android Studio 2.2,它位于Android Lint:正确性

截图

由@Terence补充答案

你也可以在你的build.gradle文件中通过gradleclosures特定的检查:

 lintOptions { disable 'LongLogTag' } 

或者使用xml将lint.xml文件添加到项目中:

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

这是最近的变化,在这个版本,它的一个新的皮棉检查。 其中说,

检查传递给日志logging调用的标记是否可以parsing,最长为23个字符(根据Logging API的要求)。

欲了解更多信息,请阅读以下链接中的第三点。

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

如果你不想得到这个,最小化你的TAG中的字符数量,并确保他们不会超过23的长度。

你永远不能忽略这个lint检查,它肯定会在你的发布版本上带来意想不到的结果,因为它会抛出exception并停止执行(这不会导致你的应用程序崩溃)。

最近我学到了一个可怕的教训:在debugging模式下没问题,但在发布版本上performance不同。