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

如何通过Gradle让Kotlin编译器因包与文件位置不匹配报错?

解决Kotlin包声明与文件路径不匹配的强制校验问题

一、通过Kotlin编译器强制报错

Kotlin编译器支持把「包声明和文件实际路径不匹配」的警告升级为错误,直接阻断构建流程,从根源上避免复制粘贴后忘改包名的问题。只需在项目构建配置里添加对应的编译参数:

Gradle Kotlin DSL 配置

在模块的build.gradle.kts中修改kotlinOptions:

kotlin {
    kotlinOptions {
        // 开启包名与路径不匹配的检查
        freeCompilerArgs += "-Xlint:package-name"
        // 把这个特定警告转为错误
        freeCompilerArgs += "-Xwarn-error:package-name"
    }
}

Gradle Groovy DSL 配置

在模块的build.gradle中:

android { // 纯Kotlin项目用 kotlin { } 即可
    kotlinOptions {
        freeCompilerArgs += ["-Xlint:package-name", "-Xwarn-error:package-name"]
    }
}

二、通过ktlint实现强制校验

ktlint本身就内置了检查包声明与文件路径一致性的package-name规则,默认是警告级别,你可以把它改成错误级别:

方法1:修改ktlint配置文件

在项目根目录新建.ktlint.yml,添加以下内容:

rules:
  package-name:
    level: error

方法2:Gradle ktlint插件配置

如果用Gradle的ktlint插件,在build.gradle.kts里这么写:

ktlint {
    rulesets {
        rule("package-name") {
            level = Rule.Level.ERROR
        }
    }
}

之后执行ktlint检查时,包声明不匹配的文件会被标记为错误,无法通过校验。

内容的提问来源于stack exchange,提问作者caeus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:12:34