簡體   English   中英

如何禁用Android Studio代碼樣式警告“...可以簡化為......”

[英]How to disable Android Studio code style warning “… can be simplified to …”

我正在使用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,如下所示:

例

以防萬一更多的人偶然發現這個相當古老的問題。

您還可以插入語句而不是最終值,這樣IDE就無法確定是否存在無意義的布爾表達式:

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

BuildConfig的結果如下所示:

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

順便說一句:這與生成BuildConfig.DEBUG機制相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM