【问题标题】:How do I get Checkstyle CustomImportOrder to work with Android Studio properly?如何让 Checkstyle CustomImportOrder 与 Android Studio 一起正常工作?
【发布时间】:2021-12-27 08:09:24
【问题描述】:

我看到很多 checkstyle 导入顺序违规 当我使用 Android Studio 的自动导入或优化导入工具时。

例如:

Wrong lexicographical order for 'coil.Coil' import. Should be before 'java.util.concurrent.TimeUnit'.
Wrong lexicographical order for 'androidx.annotation.Nullable' import. Should be before 'java.util.Collections.emptyList'.
Wrong lexicographical order for 'java.util.Map' import. Should be before 'org.json.JSONObject'.

为什么Android Studio 会自动在java 之后放置coil 而在java 包之前放置org?有没有一种方法可以自定义 Android Studio 行为,或者更好的是,有一个适合 Android Studio 行为的 checkstyle 配置?

【问题讨论】:

    标签: android android-studio intellij-idea import checkstyle


    【解决方案1】:

    您可以在以下位置检查 Android Studio 设置:

    Preferences>Editor>Code Style>Java
    

    我的 Android Studio(Arctic Fox 2020.3.1 Patch 3)的默认设置如下:

    如您所见,Android Studio 对一些包的处理方式有所不同。这就是为什么导入顺序不是您所期望的。

    您可以使用CustomImportOrderspecial

    <module name="CustomImportOrder">
      <property name="sortImportsInGroupAlphabetically" value="true"/>
      <property name="separateLineBetweenGroups" value="true"/>
      <property name="customImportOrderRules" value="STATIC###SPECIAL_IMPORTS###STANDARD_JAVA_PACKAGE###THIRD_PARTY_PACKAGE"/>
      <property name="specialImportsRegExp" value="^(android|androidx|com|junit|net|org)\."/>
    </module>
    

    注意:静态导入可能仍然会遇到同样的问题,但我认为没有选项可以使用 checkstyle 解决此问题。

    【讨论】:

      猜你喜欢
      • 2015-12-17
      • 1970-01-01
      • 2019-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-23
      • 2017-02-27
      • 2012-07-02
      相关资源
      最近更新 更多