【问题标题】:How to disable Android Studio code style warning "... can be simplified to ..."如何禁用 Android Studio 代码样式警告“...可以简化为...”
【发布时间】:2016-01-09 11:35:25
【问题描述】:

我正在使用 productFlavorsbuildConfigField 在我的 Android 应用中启用/禁用功能:

productFlavors {
    vanilla {
        buildConfigField "boolean", "FEATURE_SAR", "false"
    }
    edge {
        applicationIdSuffix ".edge"
        buildConfigField "boolean", "FEATURE_SAR", "true"
    }
}

尚未找到禁用 Android Studio 代码样式警告“'!BuildConfig.FEATURE_SAR' 可以简化为 'false'”的方法。

正如您在我的代码中看到的那样,我尝试了很多方法,但都没有奏效。而且我在 Android Studio 中找不到可以禁用此功能的设置。

@Override
@SuppressWarnings("SimplifiableIfStatement") // no effect
@SuppressLint("SimplifiableIfStatement")     // no effect
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Set<Integer> suppressPositions = new HashSet<>();

    //noinspection SimplifiableIfStatement <-- no effect
    if (!BuildConfig.FEATURE_SAR) {
        suppressPositions.add(IDX_SAR);
    }

    SimpleAdapter adapter = ViewUtils.createSimpleAdapter(
        getContext(), MENU_RESOURCES, suppressPositions);
    setListAdapter(adapter);
}

当然有办法通过使用资源来解决这个问题,但由于某些原因,我不能在所有情况下都使用资源。所以问题只是如何禁用这些警告,而不是如何更好地处理 Android/Gradle 中的配置管理。

【问题讨论】:

  • 一般来说,一旦将光标置于警告中,请按 ALT + ENTER。然后放大警告的上下文菜单。应该有一个带有红色 X 的条目“禁用检查”
  • 谢谢,它有效。复制并粘贴您的评论作为答案,我会接受它:-)

标签: android android-studio


【解决方案1】:

通常,一旦您将光标置于警告中,请按 ALT + ENTER。然后放大警告的上下文菜单。应该有一个显示为红色 X 的条目“禁用检查”,如下所示:

【讨论】:

  • 在您的帮助下,我发现我在代码中使用了错误的检查。不是SimplifiableIfStatement,而是PointlessBooleanExpression。这可以应用于带有//noinspection 的语句和带有注释@SuppressWarning 的方法或类。
【解决方案2】:

以防更多人偶然发现这个相当老的问题。

您也可以插入语句而不是最终值,这样 IDE 应该无法确定是否存在无意义的布尔表达式:

buildConfigField("boolean", "FEATURE_STAR", "Boolean.parseBoolean(\"true\")")

BuildConfig 中的结果将如下所示:

public static final boolean FEATURE_STAR = Boolean.parseBoolean("true");

顺便说一句:这与生成 BuildConfig.DEBUG 的机制相同。

【讨论】:

  • 解决这个问题的有趣方法。比使用 lint 提示污染代码要好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-23
  • 1970-01-01
  • 1970-01-01
  • 2017-05-05
  • 2021-11-05
  • 2020-11-04
相关资源
最近更新 更多