You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Checkstyle的CustomImportOrder与Android Studio正常适配?

问题根源

Android Studio 默认的导入排序采用分组优先、同组内字典序的逻辑,默认分组顺序从上到下为:

  • android.* / androidx.* 开头的系统框架包
  • 所有其他第三方包(包括coil.*、org.json.*等非系统包)
  • java.* / javax.* 开头的JDK内置包
  • kotlin.* 开头的Kotlin标准库包

你遇到的Checkstyle违规是因为当前使用的Checkstyle导入排序规则和Android Studio默认规则不匹配:

  1. 报错Wrong lexicographical order for 'coil.Coil' import. Should be before 'java.util.concurrent.TimeUnit':说明你的Checkstyle规则要求所有导入按纯字典序排序,字母c的序位在j之前,所以要求coil包放在java包前面
  2. 报错Wrong lexicographical order for 'java.util.Map' import. Should be before 'org.json.JSONObject':说明你的Checkstyle规则的分组逻辑是把java.*包放在org.*等第三方包前面,和Android Studio默认把所有第三方包放在java包前面的逻辑相反。
解决方案1:自定义Android Studio导入排序适配Checkstyle

你可以直接调整Android Studio的导入排序规则,和当前的Checkstyle规则对齐:

  • 打开设置路径:File > Settings > Editor > Code Style > Java(Kotlin代码请切换到Kotlin标签页)
  • 切换到Imports标签,找到Import Layout配置区域
  • 可以拖动调整分组的先后顺序、新增/删除自定义分组,也可以勾选Sort imports alphabetically实现全导入纯字典序排序,调整完成后后续使用自动导入、优化导入功能就不会再触发违规。
解决方案2:调整Checkstyle配置适配Android Studio默认逻辑

如果不想修改Android Studio的默认排序习惯,可以修改Checkstyle的ImportOrder规则配置,示例配置如下:

<module name="ImportOrder">
    <!-- 分组顺序和Android Studio默认对齐:androidx/android > 第三方包 > java/javax > kotlin -->
    <property name="groups" value="^android\..*,^androidx\..*,*,^java\..*,^javax\..*,^kotlin\..*"/>
    <!-- 同组内按字典序排序 -->
    <property name="ordered" value="true"/>
    <!-- 静态导入也按字典序排序 -->
    <property name="sortStaticImportsAlphabetically" value="true"/>
    <!-- 分组之间用空行分隔 -->
    <property name="separatedByBlankLines" value="true"/>
</module>

配置更新后重新执行Checkstyle检查即可和Android Studio默认的导入排序逻辑对齐。


内容的提问来源于stack exchange,提问作者Teng-pao Yu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 07:06:06