给定以下导入
import javax.inject.Inject
import kotlinx.android.synthetic.main.fragment.*
Android Studio重新排列为以下当按下控制+选项+ o
import kotlinx.android.synthetic.main.fragment.*
import javax.inject.Inject
我的pre-commit
挂钩运行ktlint
然后失败,因为这一点。有什么办法来解决这个问题吗?
给定以下导入
import javax.inject.Inject
import kotlinx.android.synthetic.main.fragment.*
Android Studio重新排列为以下当按下控制+选项+ o
import kotlinx.android.synthetic.main.fragment.*
import javax.inject.Inject
我的pre-commit
挂钩运行ktlint
然后失败,因为这一点。有什么办法来解决这个问题吗?
7条答案
按热度按时间2jcobegt1#
最新的IntelliJ IDEA / Android Studio可能无法符合Android Kotlin样式指南中的全部规范。因此,目前,在IntelliJ IDEA / Android Studio中,没有直接的方式按照字典顺序排列导入。
现在,您可能希望通过在项目根目录下的***.editorconfig***文件中禁用“导入排序”来禁用对Klint的此检查:
这将禁用项目中的签入。
jvlzgdj92#
IntelliJ IDEA / Android Studio不允许您按字母顺序对导入进行排序,无论是在Java中还是在Kotlin中。
然而Java有一个 Import layout 部分,它可以给你一些控制,但是仍然不可能有一个你想要的精确的顺序。
这个不适用于Kotlin现在也适用于Kotlin。您可以查看https://youtrack.jetbrains.com/issue/KT-10974
kmpatx3s3#
它的奇怪行为,但如果您删除所有从 * 分别导入别名 *,你会得到 * 字典顺序 *
之前:
之后:
n53p2ov04#
您可以停用该档案的汇入顺序。
我有这个:
Ktlint按此方式重新排序,但检查仍然失败:
只好在第一行加上了忽略:
368yc8dk5#
如果你在IntelliJ/Android Studio中,通常只需点击代码-〉优化导入就足以修复它
如果我没记错的话那只是个掉毛错误
qacovj5a6#
我知道这是旧的,我确实设法通过添加
// ktlint-disable import-ordering
来修复这个问题,但最终我找到了一个更好的解决方案。如果你安装了命令行ktlint,你可以在你的android源代码文件夹上运行ktlint --android -F
terminal命令,它会自动修复这个问题。--android
部分非常重要,使用ktlint -F
命令,而不使用android部分,会解决一些ktlint的问题,但不是他的问题。ercv8c1e7#
您可以在您的android studio终端上运行此命令。这将自动重新格式化所有ktlint问题。Cmd -