【问题标题】:Customize lint warnings for deprecation/newapi为弃用/newapi 自定义 lint 警告
【发布时间】:2016-12-09 13:44:53
【问题描述】:

我只是想知道是否有可能针对以下情况自定义 lint 检查:

Spannable text;
if(Build.VERSION.SDK_INT > Build.VERSION_CODE.N) {
text = Html.fromHtml(htmlString, Html.FROM_HTML_MODE_LEGACY, null, null);
} else {
text = Html.fromHtml(htmlString, null, null);
}

如果没有 if,Html.fromHtml(<4 params>) 将被指示为错误,因为它在 api 24 下不可用,但由于 if 条件,错误指示会自动被抑制。 关于 Html.fromHtml(<3 params>) 方法的弃用警告不会发生同样的事情。由于该方法(感谢 if)仅在未弃用的情况下执行,因此此警告是错误的。我必须手动抑制它。

有可能 Lint 在这种情况下自动抑制弃用警告???

第二个问题,但已链接: 如果我在以下模式下更改之前的代码,lint 会继续将“newApi 方法”指示为错误。 有没有可能自动处理? 谢谢:

Spannable text = Build.VERSION.SDK_INT > Build.VERSION_CODE.N
? Html.fromHtml(htmlString, Html.FROM_HTML_MODE_LEGACY, null, null)
: Html.fromHtml(htmlString, null, null);

詹尼

【问题讨论】:

  • 你试过注释@SuppressLint("NewApi")吗?
  • 是的,我做到了,它有效。我要问的是一种永远教 Lint 自动处理这种情况而无需每次都添加 SuppressWarning 的方法!

标签: android android-studio backwards-compatibility android-lint


【解决方案1】:

在当前版本的 Android Studio 中,它不会在您的代码周围使用 if (Build.VERSION.SDK_INT > Build.VERSION_CODE.N) 发出警告。看来Android Studio团队已经修复了。

【讨论】:

    【解决方案2】:
    1. 从 Android Studio 的设置中禁用检查。 转到 文件>>设置>>编辑器>>检查并取消选中在旧版本上调用新方法,或者您可以将严重性更改为其他错误

    还有一些其他方法,例如 配置 lint 文件使用 Gradle 配置 lint 选项 以及更多check here

    希望这会对你有所帮助。

    【讨论】:

    • 对不起,这对我没有帮助。按照您的回答,我只能禁用或更改所有“在旧版本上调用新方法”事件的严重性。我只想禁用通过检查 sdk 版本处理的事件。不过,谢谢你的帮助!!
    • 好的....您是否尝试过提供的链接中的其他选项,例如使用 Gradle 配置 lint 选项等?
    • 是的,但它与上面的窗口相同。抑制该事件的每个实例。这不是我要找的。​​span>
    猜你喜欢
    • 1970-01-01
    • 2020-06-30
    • 2017-03-01
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多