如何禁用Android Studio代码样式警告“...可以简化为......”

时间:2016-01-09 11:35:25

标签: android android-studio

我正在使用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中的配置管理。

2 个答案:

答案 0 :(得分:5)

一般情况下,一旦将光标置于警告状态,请按ALT + ENTER。然后放大警告的上下文菜单。应该有一个条目&#34;禁用检查&#34;显示为红色X,如下所示:

Example

答案 1 :(得分:1)

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

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

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

您的BuildConfig中的结果将如下所示:

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

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