如何让Android Studio的Kotlin导入排序不区分类与静态导入?
解决Android Studio中Kotlin导入排序区分类与函数的问题
我之前也碰到过一模一样的困扰,Android Studio默认的导入排序确实会把Kotlin顶层函数(比如kotlin.concurrent.thread这种,对应Java的静态导入)单独放到普通类导入之后,不符合Android Kotlin风格指南的要求。不过好在确实有对应的设置可以调整,让所有导入按ASCII顺序合并排序,不用区分类型。
具体操作步骤如下:
打开Android Studio的设置面板:
- Windows/Linux用户:点击顶部菜单栏的「File」→「Settings」
- Mac用户:点击顶部菜单栏的「Android Studio」→「Settings」
在设置面板中,依次展开「Editor」→「Code Style」→「Kotlin」,切换到「Imports」标签页。
找到「Layout」区域的「Import layout」配置项,这里是控制导入分组和顺序的核心设置:
- 默认配置可能会把静态导入(Kotlin顶层函数属于这类)单独放在最后一组,比如类似这样:
import java.* import javax.* import kotlin.* import android.* import com.* import org.* import * import static kotlin.* - 你需要把单独的静态导入条目(比如
import static kotlin.*)移除,调整成所有导入都在统一的分组逻辑里排序,比如修改成:import java.* import javax.* import kotlin.* import android.* import com.* import org.* import * - 同时确认「Sort imports alphabetically」选项处于勾选状态(一般默认是勾选的,但最好再检查下)。
- 默认配置可能会把静态导入(Kotlin顶层函数属于这类)单独放在最后一组,比如类似这样:
如果你希望同一包下的导入自动合并,可以额外勾选「Merge imports from the same package」选项,这属于辅助优化,不影响排序规则。
设置完成后,再使用「Optimize Imports」(快捷键Ctrl+Alt+O),你会发现kotlin.concurrent.thread、kotlin.random.Random这类顶层函数导入会和普通类导入一起按ASCII顺序排列,完全符合Android Kotlin风格指南的要求了。
内容的提问来源于stack exchange,提问作者Randy Sugianto 'Yuku'
相关产品推荐
相关产品推荐

